Parse excel(xlsx/xls/csv) to other format(csv, xlsx, json).
pip install xlparser
# or
pip3 install xlparser
If you want to filter fields, it will be convenient with xcut.
pip install xcut
# or
pip3 install xcut
$ xlparser -h
xlparser [options] INFILE [OUTFILE]\n
options:\n
-h For help.\n
From xlsx to csv.
$ xlparser source.xlsx new.csv
From csv to xlsx.
$ xlparser source.csv new.xlsx
From csv to json.
$ xlparser source.csv new.json
From xlsx to csv(stdout).
$ xlparser source.xlsx | head
$ xlparser src.xlsx | tee test.csv
name, score
"李雷,韩梅",15
小花,16
Use xcut to filter fields.
$ xlparser src.xlsx | xcut --from-csv -f name
name
"李雷,韩梅"
小花
$ xlparser src.xlsx | xcut --from-csv -f score,name
score,name
15,"李雷,韩梅"
16,小花
Convert xlsx to csv
$ xlparser src.xlsx test.csv;
$ cat test.csv
name, age
李雷,15
小花,16
Convert csv to json
$ xlparser test.csv test.json
[["name", "age"], ["李雷", "15"], ["小花", "16"]]
parse
any type of file to rows:
>>> from xlparser import parse, saveCsv
>>> rows = parse('some.xlsx')
>>> list(rows)
[['foo', 'bar'], ['看', '我', '变']]
The parse
function supports the following file formats: .csv, .xls, .xlsx .
Save rows to csv
>>> from xlparser import saveCsv
>>> rows = [['foo', 'bar'], ['看', '我', '变']]
>>> saveCsv(rows, 'test.csv')
Save rows to xlsx
>>> saveXlsx(rows, 'test.xlsx')
>>> from xlparser import *
>>> rows = [('foo','bar'), ('看','我','变')]
>>> saveCsv(rows, 'test.csv')
>>> list(parseCsv('test.csv'))
[['foo', 'bar'], ['看', '我', '变']]
>>> from xlparser import loadZip
>>> zf = loadZip('test.xlsx')
>>> print(zf.filelist)
......
>>> zf.extract('xl/media/image1.png', '/tmp')
>>> os.rename('/tmp/'+'xl/media/image1.png', './image1.png')
- python>=3.5
- xlrd: required by xls
- openpyxl>=2.5.4: required by xlsx