カテゴリー
【xlsx2csvコマンド活用編】Linux環境でExcelファイル(xls/xlsx)をCSVデータに変換する
※ 当ページには【広告/PR】を含む場合があります。
2021/04/02
はじめに
xlsx2csvコマンドのインストール方法
$ sudo apt-get install xlsx2csv
$ xlsx2csv --version
0.7.4
$ pip install xlsx2csv
$ xlsx2csv --version
0.7.7
xlsx2csvの利用法
ブック 1.xlsx
book1.xlsx
$ xlsx2csv book1.xlsx
1,2,3
4,5,6
個別のシートを表示させる①
-s/--sheet シート番号
$ xlsx2csv -s 1 book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇出力
1 2 3
4 5 6
$ xlsx2csv -s 2 book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇出力
7 8 9
a b c
個別のシートを表示させる②
-n/--sheetname シート名
xlsx2csv -n "Sheet1" book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇出力
1 2 3
4 5 6
xlsx2csv -n "Sheet2" book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇出力
7 8 9
a b c
クォーション(文字列の括弧付け)
-q/--quoting オプション名
$ xlsx2csv -n 'Sheet3' book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇デフォルト'minimal'相当
山田 モガ史 佐藤 マウ児 鈴木 ラヲ美
営業 経理 人事
8年目 17年目 3年目
33 48 24
xlsx2csv -n 'Sheet3' -q 'nonnumeric' book1.xlsx | awk -F"," '
{ print $1, $2, $3; }
'
#👇'nonnumeric'(非数値的) > ダブルクオーテーションで囲ってくれる
"山田 モガ史" "佐藤 マウ児" "鈴木 ラヲ美"
"営業" "経理" "人事"
"8年目" "17年目" "3年目"
"33" "48" "24"
CSVファイルを抽出する
xlsx2csv [オプション] [XLSXファイル] [ファイル名/保存先]
$ xlsx2csv -n 'Sheet1' book1.xlsx 1.csv
$ tree
.
├── 1.csv
└── book1.xlsx
-a, --all
$ xlsx2csv -a book1.xlsx ./
$ tree
.
├── Sheet1.csv
├── Sheet2.csv
├── Sheet3.csv
└── book1.xlsx
-E/--exclude_sheet_pattern [パターン]
$ xlsx2csv -a book1.xlsx ./ -E 'Sheet1' 'Sheet2'
$ tree
.
├── Sheet3.csv
└── book1.xlsx
-I/--include_sheet_pattern
$ xlsx2csv -a book1.xlsx ./ -I 'Sheet2' 'Sheet3'
$ tree
.
├── Sheet2.csv
├── Sheet3.csv
└── book1.xlsx
XSLXファイルの内容を確認する(リストコマンド風に)
-a
$ xlsx2csv -a book1.xlsx
-------- 1 - Sheet1
1,2,3
4,5,6
-------- 2 - Sheet2
7,8,9
a,b,c
-------- 3 - Sheet3
山田 モガ史,佐藤 マウ児,鈴木 ラヲ美
営業,経理,人事
8年目,17年目,3年目
33,48,24
-E
-I
$ xlsx2csv -a book1.xlsx -I 'Sheet2' 'Sheet3'
-------- 2 - Sheet2
7,8,9
a,b,c
-------- 3 - Sheet3
山田 モガ史,佐藤 マウ児,鈴木 ラヲ美
営業,経理,人事
8年目,17年目,3年目
33,48,24
$ xlsx2csv -a book1.xlsx -E 'Sheet3'
-------- 1 - Sheet1
1,2,3
4,5,6
-------- 2 - Sheet2
7,8,9
a,b,c
まとめ
xlsx2csv
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー