Convert Open Document Spreadsheet ODS to CSV.
Usually you would convert ODS to CSV via libreoffice --headless
but this conflicts with running GUI instances of libreoffice
and requires a full libreoffice installation and has incomprehensible CSV export command-line options and selection of individual tables is inferior.
This program quickly scans through a FODS or ODS document using a XML parser and watches only the necessary data. It does not interpret or evaluate the formula data, instead it assumes that the contained evaluated values are correct. This is true, if the file was saved from LibreOffice but might not be true if generated or manipulated by other tools.
You can feed generated CSV files to LaTeX datatool.sty
, csvmidi
, or csvreplace
from Haskell package spreadsheet
.
Example runs of the program:
ods2csv --list-tables input.ods
ods2csv --sheetnumber=1 input.ods >output.csv
ods2csv --sheetname="Table 2" --separator=TAB input.ods >output.tsv
ods2csv --sheetnumber=2 input.fods >output.csv
ods2csv --sheetnumber=2 <input.fods >output.csv
The program supports UTF-8 encoding for FODS/XML input, and applies Latin1 decoding otherwise. For writing CSV it uses the system's default encoding.
ToDo: Provide FODS parser as library function, maybe in spreadsheet
.