USAGE:
xlsx2csv [FLAGS] [OPTIONS] <xlsx> [output]...
FLAGS:
-h, --help Prints help information
-i, --ignore-case Rgex case insensitivedly
-l, --list List sheet names by id
-u, --use-sheet-names Use sheet names as output filename prefix (in current dir or --workdir)
-V, --version Prints version information
OPTIONS:
-d, --delimiter <delimiter> Delimiter for output [default: ,]
-X, --exclude <exclude> A regex pattern for matching sheetnames to exclude, used with '-u'
-I, --include <include> A regex pattern for matching sheetnames to include, used with '-u'
-s, --select <select> Select sheet by name or id in output, only used when output to stdout
-w, --workdir <workdir> Output files location if `--use-sheet-names` setted
ARGS:
<xlsx> Input Excel-like files, supports: .xls .xlsx .xlsb .xlsm .ods
<output>... Output each sheet to sperated file
cargo install xlsx2csvSimple usage is similar to ssconvert syntax, like this:
xlsx2csv input.xlsx sheet1.csv sheet2.csvThis will output the first to sheet1.csv, the second to sheet2.csv, and ignore other sheets.
If no output position args setted, eg. xlsx2csv input.xlsx, it'll write first sheet to stdout. So the two commands are equal:
xlsx2csv input.xlsx sheet1.csvxlsx2csv input.xlsx > sheet1.csv.
If you want to select specific sheet to stdout, use -s/--select <id or name> (id is 0-based):
xlsx2csv input.xlsx -s 1In previous command, it'll output the second(0-based 1 is the second) sheet to stdout.
Use --list/-l it will just print all the sheetnames by id.
xlsx2csv --list
xlsx2csv -lIf there's many sheets that you don't wanna set filename for each,
use -u/--use-sheet-names to write with sheetnames.
xlsx2csv input.xlsx -uIf you want to write to directory other than ., use -w/--workdir along with -u option.
xlsx2csv input.xlsx -u -w test/
The filename extension is detemined by delimiter, , to .csv, \t to .tsv, others will treat as ','.
By default, it will output all sheets, but if you want to select by sheet names with regex match, use -I/--include to include only matching, and -X/--exclude to exclude matching.
You could also combine these two option with include-first-exclude-after order:
xlsx2csv input.xlsx -I 'a\d+'
xlsx2csv input.xlsx -X '\s'
xlsx2csv input.xlsx -I '\S{3,}' -X 'Sheet'The last command line will first include all sheet with pattern '\S{3,}' matched and then exclude that match Sheet.
The following is printed by xlsx2csv --help
USAGE:
xlsx2csv [FLAGS] [OPTIONS] <xlsx> [output]...
FLAGS:
-h, --help
Prints help information
-i, --ignore-case
Regex case insensitivedly.
When this flag is provided, the include and exclude patterns will be searched case insensitively. used with
'-u'.
-l, --list
List sheet names by id
-u, --use-sheet-names
Use sheet names as output filename prefix (in current dir or --workdir)
-V, --version
Prints version information
OPTIONS:
-d, --delimiter <delimiter>
Delimiter for output.
If `use-sheet-names` setted, it will control the output filename extension: , -> csv, \t -> tsv [default: ,]
-X, --exclude <exclude>
A regex pattern for matching sheetnames to exclude, used with '-u'
-I, --include <include>
A regex pattern for matching sheetnames to include, used with '-u'
-s, --select <select>
Select sheet by name or id in output, only used when output to stdout
-w, --workdir <workdir>
Output files location if `--use-sheet-names` setted
ARGS:
<xlsx>
Input Excel-like files, supports: .xls .xlsx .xlsb .xlsm .ods
<output>...
Output each sheet to seprated file.
If not setted, output first sheet to stdout.
MIT OR Apache-2.0