サイト内検索:
rex : エクセルファイルのテキスト変換
使い方とオプション
rex <sheet> [<from> <to>] <file.xlsx>
-n<char>
-h --help: usageとバージョンを表示します。
エクセルファイルの指定したシート、指定した範囲をテーブル形式で出力します。空白セルは「_」でパディング、半角空白は「_」に変換します。
下記のようなfile.xlsxファイルがあるとします。
|A B C
===============================
1 |
2 |a2
3 | b3
4 | b4 c4
5 | c5
6 |
7 |
8 |
9 | b9
10| b10
==============================
sheet1/
~~~~~~
file.xlsxの一番目のシートを出力
$ rex 1 file.xlsx
a2 - -
- b3 -
- b4 c4
- - c5
- - -
- - -
- - -
- b9 -
- b10 -
file.xlsxの一番目のシートのA3からC5まで出力
$ rex 1 A3 C5 file.xlsx
- b3 -
- b4 c4
- - c5
file.xlsxの一番目のシートのB4より右下の範囲を出力
$ rex 1 B4 -- file.xlsx
b4 c4
- c5
- -
- -
- -
b9 -
b10 -
file.xlsxの一番目のシートのC列だけを出力
$ rex 1 C- C- file.xlsx
c4
c5
Excelで記述された範囲外の領域を指定しても、"_" でパディングします。
$ rex 1 A1 D11 file.xlsx
a2 - - -
- b3 - -
- b4 c4 -
- - c5 -
- - - -
- - - -
- - - -
- b9 - -
- b10 - -
- - - -
-nオプションを使うとパディングする文字を変更することが出来ます。
$ rex -n@ 1 A1 D11 file.xlsx
a2 @ @ @
@ b3 @ @
@ b4 c4 @
@ @ c5 @
@ @ @ @
@ @ @ @
@ @ @ @
@ b9 @ @
@ b10 @ @
@ @ @ @
日付、時刻は文字列でなく、日付が整数部、時刻が小数部の数字で出力されます。この数値は別のコマンドで変換します。wexで書き込んだエクセルのシートを、エクセルで開かずにrexで読み込むと、日付も文字列で出力されます。
Excelファイルにおいて扱っている文字列が多い場合、まれに「sharedStrings用のメモリ領域が足りません」というエラーメッセージが表示されることがあります。その際はお手数ですが、rex における rex-core のオプションをエディタなどで書き換えをお願いします。rex はシェルスクリプトなので vi など通常のエディタで書き換えが可能です。書き換えるのは rex-core の -m オプションの後に付いている数値です。この数値を増やすことで状況が改善する場合があります。
rexはシェルスクリプトです。内部で rex-core,rex-map というC言語で書かれた二つのプログラムを呼び出しています。rex, rex-map, rex-core を /opt/usp/TOOL に置いて利用します。
Version : Wed Sep 9 23:49:38 JST 2020
Edition : 2
© 2021 Universal Shell Programming Laboratory site