LoginSignup
9
15

More than 5 years have passed since last update.

PythonでEXCELファイルをCSVへコンバートする方法

Last updated at Posted at 2018-07-20

環境

OS : Windows 10
Python 3.6

EXCELファイルをCSVへコンバートしたい事案があり、調べました。
Pythonのライブラリ xlsx2csv を使ってxlsxファイルをcsvファイルへ変換できます。

インストール

ライブラリ xlsx2csv はpipコマンドでインストールできます。

コマンド
pip install xlsx2csv

準備

pipコマンドの実行でこのフォルダの配下に、 xlsx2csv という名前のファイルができました。
C:\Users\xxx\AppData\Local\Programs\Python\Python36\Scripts

このフォルダが環境変数のpathに設定されていても、 xlsx2csv が拡張子のないファイルのため、そのままでは使いにくかった。
(以下のようにpythonコマンドおよびファイルパスを指定しないと動きませんでした。)

コマンド
python (ファイルパス指定)/xlsx2csv

中身をみるとpythonスクリプトです。

ファイル名変更

簡単に使うために .py の拡張子つきにファイル名を変更します。

xlsx2csvxlsx2csv.py

使い方

コマンドプロンプトのコマンドラインで実行できます。
xlsx2csv.py が置かれているフォルダのpathが通っていれば以下のコマンドで実行できます。

コマンド
xlsx2csv.py xlsxfile [outfile]

以下に便利なオプションを抜粋して記載します。

使い方・ヘルプを確認したい

コマンド
xlsx2csv.py -h

csvファイルに結果出力したい

コマンド
xlsx2csv.py xlsxfile csvfile
  • 実行例省略

コマンドラインに結果出力したい

コマンド
xlsx2csv.py xlsxfile
実行例
>xlsx2csv.py sample.xlsx



,サンプルファイル,,,,
,,,,07-20-18,サンプル会社

,サンプル表,,,,
 ,,列1,列2,列3,列4
,1,"\11,000","\12,000","\13,000","\14,000"
,2,"\21,000","\22,000","\23,000","\24,000"
,3,"\31,000","\32,000","\33,000","\34,000"
,4,"\41,000","\42,000","\43,000","\44,000"

タブ区切りに変更したい

  • デフォルトはカンマ(,)区切り。
  • 金額や係数で3桁区切りのカンマ(,)がハードコードされているときとかはタブ区切りにしたい。
コマンド
xlsx2csv.py -d tab xlsxfile
実行例
>xlsx2csv.py -d tab sample.xlsx



        サンプルファイル
                                07-20-18        サンプル会社

        サンプル表
                列1    列2    列3    列4
        1       \11,000 \12,000 \13,000 \14,000
        2       \21,000 \22,000 \23,000 \24,000
        3       \31,000 \32,000 \33,000 \34,000
        4       \41,000 \42,000 \43,000 \44,000

空白行は出力から除きたい

コマンド
xlsx2csv.py -i xlsxfile
実行例
>xlsx2csv.py -i sample.xlsx
,サンプルファイル,,,,
,,,,07-20-18,サンプル会社
,サンプル表,,,,
 ,,列1,列2,列3,列4
,1,"\11,000","\12,000","\13,000","\14,000"
,2,"\21,000","\22,000","\23,000","\24,000"
,3,"\31,000","\32,000","\33,000","\34,000"
,4,"\41,000","\42,000","\43,000","\44,000"

文字列を" "で括りたい

  • 括るレベルの指定が必要
    • レベル:none / minimal / nonnumeric / all
    • -q のあとに上記いづれかをKEYWORD指定
コマンド
xlsx2csv.py -q *KEYWORD* xlsxfile
実行例
>xlsx2csv.py -q nonnumeric sample.xlsx



"","サンプルファイル","","","",""
"","","","","07-20-18","サンプル会社"

"","サンプル表","","","",""
" ","","列1","列2","列3","列4"
"","1","\11,000","\12,000","\13,000","\14,000"
"","2","\21,000","\22,000","\23,000","\24,000"
"","3","\31,000","\32,000","\33,000","\34,000"
"","4","\41,000","\42,000","\43,000","\44,000"
9
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
15