GNU/Linux >> Linux の 問題 >  >> Linux

セミコロンで区切られたフィールドを使用してコマンドラインで.xlsx(ms Excel)ファイルを.csvに変換しますか?

これはではないことを理解しています 完全にUNIX/Linux関連の質問。しかし、これはLinuxで行うことなので、誰かが答えを持ってくれることを願っています。

オンラインのExcelファイル(.xlsx)を持っています )定期的に(他の誰かによって)更新されます。そのExcelシートを処理するために、スクリプトを作成してcronジョブとして配置したいと思います。ただし、そのためには、それをテキストファイルに変換する必要があります(つまり、.csv )セミコロンで区切られた列。一部の列にはカンマが含まれているため、残念ながらカンマで区切ることはできません。シェルからこの変換を行うことは可能ですか? Open Officeをインストールしていて、GUIを使用してこれを実行できますが、コマンドラインからこれを実行できるかどうかを知りたいです。ありがとう!

PS:私もMacマシンを持っているので、そこで何らかの解決策が機能するのであれば、それも良いことです。 🙂

承認された回答:

OpenOfficeには、コマンドラインでフォーマット変換を実行するためのunoconvプログラムが付属しています。

unoconv -f csv filename.xlsx

より複雑な要件については、Spreadsheet::XLSXを使用してXLSXファイルを解析できます。 Perlまたはopenpyxl Pythonで。たとえば、ワークシートをセミコロンで区切られたCSVファイルとして印刷する簡単なスクリプトを次に示します(警告:テストされていない、ブラウザに直接入力):

perl -MSpreadsheet::XLSX -e '
    $ = "n"; $, = ";";
    my $workbook = Spreadsheet::XLSX->new()->parse($ARGV[0]);
    my $worksheet = ($workbook->worksheets())[0];
    my ($row_min, $row_max) = $worksheet->row_range();
    my ($col_min, $col_max) = $worksheet->col_range();
    for my $row ($row_min..$row_max) {
        print map {$worksheet->get_cell($row,$_)->value()} ($col_min..$col_max);
    }
' filename.xlsx >filename.csv

Linux
  1. Linuxでの並べ替えコマンドと例

  2. クイックヒント:ImageMagickを使用してコマンドラインで画像を変換する

  3. openpyxl CSV を EXCEL に変換

  1. このコマンドライントリックでPDFサイズを縮小する

  2. コマンドラインからの PostgreSQL CSV インポート

  3. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  1. xclipを使用してLinuxコマンドラインでコピーして貼り付けます

  2. コマンドラインからExcelファイルをCalcファイルに変換する方法は?

  3. ちょっとしたトリック:ランダムなファイルまたはファイル内の行を shuf で選択します