スプレッドシート(odsまたはxlsx)を、スプレッドシートの各シートに1つずつ、複数のcsvファイルに分割したいと思います。
グラフィカルアプリを起動せずに、できれば1つのライナーでこれを実行したいと思います。
何か案は?
リンクされた複製は、回答の1つ(受け入れられたものではない)で可能な解決策を提供し、役に立ちましたが。私が要求したように、このソリューションはODSファイルでは機能せず、質問は十分に異なると考えています。
さて、libreoffice
は、スクリプトからドキュメントを変換できます(つまり、GUIを開かずにヘッドレスモードで)。スプレッドシート形式をCSVに変換するには、その最も単純な形式は次のようになります。
libreoffice --convert-to csv PATH/TO/YOUR.ODS
ただし、これはドキュメントの最初のシートを取得して変換し、他のすべてを無視します。残念ながら、変換するシートを選択するオプションもありません。
したがって、 xlsx2csv のような外部ツールが必要になります。これは、XLSXファイルをCSVに変換するオープンソースPython(2と3の両方)スクリプトであり、すべてのシートを個別のファイルに抽出することをサポートします。
Ubuntuには既にPythonがインストールされていますが、最初にパッケージマネージャーとしてpip
をインストールする必要がある場合があります。 Python 3を使用しますが、以下のすべてのコマンドを変更して2で実行することもできます。
Sudo apt install python3-pip
次に、xlsx2csv
とともにpip3
をユーザーのパッケージディレクトリにインストールします。
pip3 install --user xlsx2csv
その後、実行可能スクリプトは~/.local/bin/xlsx2csv
にあります。
XLSX形式がまだない場合は、ODSスプレッドシートをlibreoffice
で変換しましょう。
libreoffice --convert-to xlsx PATH/TO/YOUR.ods
次に、xlsx2csv
を使用してすべてのシートを抽出します。フォルダーOUTPUTFOLDER
を作成し、そこに抽出されたすべてのSHEETNAME.csv
を配置します。
~/.local/bin/xlsx2csv -a YOUR.xlsx OUTPUTFOLDER
xls2csv
(変換する。XLS)ツールの使用 catdoc
パッケージインストールSudo apt install catdoc
:
xls2csv -b '
' Excel.xls | awk '{print >"sheet"NR}' RS='\n\n'
このxls2csv -b ' ' Excel.xls
はMS-Excelファイルを読み取り、その内容をコンマ区切りデータとして標準出力に配置し、-b STRING
を使用して、シートにどの文字(または文字列;ここで実際の改行を定義したか)で区切るように指示します。
xlsx2csv
を使用します(変換するには。XLSX); Sudo apt install xlsx2csv
のインストール:
xlsx2csv -s 0 Excel.xlsx |
awk '!/,/ { nextSheet++; next } { print >"sheet"nextSheet }'
-s 0
は、すべてのシートを印刷することを意味します。
を見てみましょう
ssconvert -O 'separator=:: format=raw quoting-mode=never' -S x.ods out%n.txt
\ thanks {Bruni}
-O 'separator= format= ...'
は、csv形式の詳細を制御するために使用されます-S
はシートごとに異なる出力ファイルを作成します