格式¶
Tablib支持各种不同的表格格式,包括输入和输出。而且,你可以 register your own formats .
命令行接口¶
这个 cli
格式当前仅导出。导出将生成适合终端的表示表。
导出到CLI时,可以使用 tablefmt
参数,支持的格式为:
>>> import tabulate
>>> list(tabulate._table_formats)
['simple', 'plain', 'grid', 'fancy_grid', 'github', 'pipe', 'orgtbl',
'jira', 'presto', 'psql', 'rst', 'mediawiki', 'moinmoin', 'youtrack',
'html', 'latex', 'latex_raw', 'latex_booktabs', 'tsv', 'textile']
例如::
dataset.export("cli", tablefmt="github")
dataset.export("cli", tablefmt="grid")
此格式是可选的,请使用 pip install "tablib[cli]"
使格式可用。
csv¶
导入CSV数据时,可以指定数据源的第一行是否为带有 headers
布尔参数(默认为 True
):
import tablib
tablib.import_set(your_data_stream, format='csv', headers=False)
使用导出时 csv
格式,则顶行将包含标题(如果已设置)。否则,首行将包含数据集的第一行。
导入CSV数据源或将数据集导出为CSV时,可以传递 csv.reader()
和 csv.writer()
功能。例如::
tablib.import_set(your_data_stream, format='csv', dialect='unix')
dataset.export('csv', delimiter=' ', quotechar='|')
行尾
导出默认情况下使用\r\n行尾,因此,请确保包括 newline=''
否则,在Excel中打开文件时,每行之间将出现一个空行:
with open('output.csv', 'w', newline='') as f:
f.write(dataset.export('csv'))
如果不这样做,并且在windows上导出文件,则csv文件将在excel中打开,每行之间有一个空行。
dbf公司¶
使用导入/导出 dBASE 格式。
二进制警告
这个 dbf
格式包含二进制数据,因此请确保以二进制模式写入:
with open('output.dbf', 'wb') as f:
f.write(dataset.export('dbf')
HTML¶
这个 html
格式当前仅导出。导出将生成一个包含 <table>
. 如果已设置标题,则它们将用作表标题。
此格式是可选的,请使用 pip install "tablib[html]"
使格式可用。
吉拉¶
这个 jira
格式当前仅导出。导出根据Jira表格语法格式化数据集:
||heading 1||heading 2||heading 3||
|col A1|col A2|col A3|
|col B1|col B2|col B3|
消耗臭氧层¶
以OpenDocument电子表格格式导出数据。这个 ods
格式当前仅导出。
此格式是可选的,请使用 pip install "tablib[ods]"
使格式可用。
二进制警告
Dataset.ods
包含二进制数据,因此请确保以二进制模式写入:
with open('output.ods', 'wb') as f:
f.write(data.ods)
RST¶
将数据导出为 reStructuredText 数据集的表表示。这个 rst
格式仅导出。
如果第一列中的文本从未换行,则导出将返回一个简单表,否则将返回网格表:
>>> from tablib import Dataset
>>> bits = ((0, 0), (1, 0), (0, 1), (1, 1))
>>> data = Dataset()
>>> data.headers = ['A', 'B', 'A and B']
>>> for a, b in bits:
... data.append([bool(a), bool(b), bool(a * b)])
>>> table = data.export('rst')
>>> table.split('\\n') == [
... '===== ===== =====',
... ' A B A and',
... ' B ',
... '===== ===== =====',
... 'False False False',
... 'True False False',
... 'False True False',
... 'True True True ',
... '===== ===== =====',
... ]
True
xls公司¶
在旧版Excel电子表格表示中导入/导出数据。
此格式是可选的,请使用 pip install "tablib[xls]"
使格式可用。
注解
XLS文件最多限制为65000行。使用 xlsx 以避免这种限制。
二进制警告
这个 xls
文件格式是二进制的,所以请确保以二进制模式写入:
with open('output.xls', 'wb') as f:
f.write(data.export('xls'))
xlsx公司¶
在Excel 07+电子表格中导入/导出数据。
此格式是可选的,请使用 pip install "tablib[xlsx]"
使格式可用。
注解
当阅读 xlsx
文件包含单元格中的公式,则Tablib将读取单元格值,而不是单元格公式。
在 2.0.0 版更改: 读取单元格值而不是公式。
二进制警告
这个 xlsx
文件格式是二进制的,所以请确保以二进制模式写入:
with open('output.xlsx', 'wb') as f:
f.write(data.export('xlsx'))