Debian Linuxを使用していますが、CSVファイルをExcel XLSスプレッドシートファイルに変換したいと考えています。 catdoc パッケージには、XLSからCSVに変換するxls2csv
コマンドが含まれています。ただし、その逆は行いません。
私はCSVファイルしか持っていないので、フォーマットなどは気にしません。非常にシンプルなXLSファイルのみを生成し、豪華な新しいバージョンをサポートしていないのではないかと心配していません。 XLSスプレッドシートである限り。
なぜそれをしたいのですか?データ/メタデータの追加や変更には関心がないので、csvのままにしておくことができます。 CSVはデフォルトでMS Excelに関連付けられているため、それを開く人は誰でもMS Excelで開くことができます。
それが何らかの理由で機能しない場合は、私が知る限り、次のスケルトンを使用して(一種の)有効なxlsファイルを生成できることに注意してください。
<table>
<tr>
<td>field0</td>
<td>field1</td>
..
<td>fieldX</td>
</tr>
... ad inf
</table>
(私は本気です)
「gnumeric」パッケージのssconvert
ツールを使用してみてください。 Debianでは、Sudo apt-get install gnumeric
を使用してパッケージをインストールし、コマンドラインから次のコマンドを実行します。
ssconvert file.csv file.xls
これでうまくいくはずです。
SourceforgeのPythonベースのソリューション と呼ばれるcsv2xlsがあります。
現時点では維持されていないようです(最後のアクティビティは1年以上前でした)が、それが必要なことを行っている場合は、それほど問題になりません。
Excel 2002 XML形式の単純なバージョンを直接出力する小さなコードを記述します。 http://en.wikipedia.org/wiki/Microsoft_Excel#File_formats
XMLスプレッドシート
この形式の対象ファイル拡張子は.xmlですが、プログラムは.xls拡張子を持つXMLファイルも正しく処理します。この機能は、サードパーティアプリケーション(MySQLクエリブラウザーなど)で広く使用されており、バイナリファイル形式を実装せずに「Excelへのエクスポート」機能を提供します。次の例は、Book1.xmlまたはBook1.xlsとして保存されている場合、Excelで正しく開かれます。
<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-Microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-Microsoft-com:office:office"
xmlns:x="urn:schemas-Microsoft-com:office:Excel"
xmlns:ss="urn:schemas-Microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1" x:FullRows="1">
<Row>
<Cell><Data ss:Type="String">Name</Data></Cell>
<Cell><Data ss:Type="String">Example</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Value</Data></Cell>
<Cell><Data ss:Type="Number">123</Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
あるいは、十分な機能が提供されない場合は、最小限の.xlsx出力を直接実装します。これは、古いバイナリ形式と比較して扱いやすいXMLファイルを含むZipファイルです。
Openofficeマクロを使用してみてください...
はじめに参照してください:Wordを変換する方法-> PDFコマンドラインから http://www.oooforum.org/forum/viewtopic.phtml?t=3772 =
確かに、CSVおよび任意の形式のXLSまたはopenOfficeのフィルターにはいくつかの問題があります。のように:レコード区切り文字:、行末記号:\ nまたは;文字列定義: "など。
私がそれを正しく取得した場合、いくつかのスクリプト内のコマンドラインでそれを実行する必要があります。これは、私が現在抱えている問題とまったく同じです。csv形式のDATAから、XLS形式でお客様に提示してください。
私はこの投稿を見つけました: https://forum.openoffice.org/en/forum/viewtopic.php?f=5&t=39844
しかし、私は完全に満足していません。それらはオプションかもしれません。
実際、何らかのopenOfficeがインストールされている場合は、次の情報を試してみることができます。 http://ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/
私のシェルで次のように入力しました:
soffice --help
そして出力の一部は:
--convert-to output_file_extension[:output_filter_name] [-outdir ouput_dir] files
Batch convert files.
If -outdir is not specified then current working dir is used as output_dir.
Eg. -convert-to pdf *.doc
-convert-to pdf:writer_pdf_Export -outdir /home/user *.doc
csv2xls
(C++で書かれた)というソフトウェアがあり、それはあなたが望むとおりに実行する必要があります(別の回答で言及されているPython2実装と混同しないでください)。
https://github.com/ferkulat/csv2xls
最後のコミットは2か月前で、その見た目から、ソフトウェアは安定しているようです。
.CSVファイルは、必要な機能を備えたExcelファイルであると私は主張します。 one anyyance のみを回避する必要があります。本当に.XLSに変換したい場合は、後でExcelで変換してください。しかし、あなたが提供する説明があれば、実際にそうする必要はありません。