xlsxファイルを解凍するには?

xlsxファイルを解凍するには?

ファイルを解凍するために使用できるコマンドをオンラインで見つけましたが、ファイルを解凍するdocxようにコマンドを調整することはできません。xlsxコマンドは

unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

word/document.xml2番目のパラメータと使用方法を理解できません。

xlsxファイルを変換しようとしたときに、次のことを試しました。

unzip -p testexcel.xlsx excel/spreadsheet.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

しかし、2番目のパラメータに何を入れるべきかわかりませんexcel/spreadsheet.xml

答え1

このパラメータは、返すword/document.xmlzipアーカイブのファイルパスです。unzipこれは、docxなどのファイル形式の標準構造の一部です。

xl/worksheets/sheet1.xmlExcel xlsxファイルの場合、他のシートがある場合はsheet2.xmlなどが必要になることがあります。これは、通常のスプレッドシート情報とともにxl / workbook.xmlに保存されているワークシートに割り当てる名前とは関係ありません。

zipファイルの構造がわからない場合は、この-lオプションを使用してzipファイルに含まれるファイルを一覧表示できます。

unzip -l some.docx

このオプションを省略すると、現在のディレクトリにのみファイルが抽出されます。-p使用中のコマンドは、sedが処理できるように出力をstdoutにパイプします。

答え2

次のコマンドを実行しました。

unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

まず、それが何をしているのかを明確にしてください。

  • word/document.xml.docx ファイルから呼び出されたファイルを抽出します。
  • sedすべての書式設定情報を削除して、何らかの方法で出力を「美しくする」コマンドにパイプします。

したがって、これを行う方法を理解するために.xlsx試してみてくださいunzip foo.xlsx。これで、興味のあるファイルが何であるかを確認できますxl/worksheets/sheet1.xml

.xlsxしかし、コンテンツを抽出したい場合は、強くお勧めします。いいえこの方法を使用してください。

.xlsx変換できるツールはいくつかあります。CSV、デフォルトでは、カンマで区切られたテーブルの内容が含まれています。

この問題.xlsxフォームをCSVに変換する方法にはいくつかの答えがあります。

関連情報