【问题标题】:Combine tab-separated value (TSV) files into an Excel 2007 (XLSX) spreadsheet将制表符分隔值 (TSV) 文件合并到 Excel 2007 (XLSX) 电子表格中
【发布时间】:2009-09-11 06:32:47
【问题描述】:
我需要将几个制表符分隔值 (TSV) 文件合并到 Excel 2007 (XLSX) 电子表格中,最好使用 Python。将它们组合起来并不需要太多的聪明——只需将每个 TSV 文件复制到 Excel 中的单独工作表上即可。当然,当我手动将数据复制粘贴到 UI 中时,数据需要像 Excel 一样被拆分为列和行。
我查看了 Excel 2007 生成的原始 XML 文件,它庞大而复杂,因此从头开始编写似乎不太现实。有没有可用的库?
【问题讨论】:
标签:
python
excel
excel-2007
【解决方案1】:
看起来xlwt 可以满足您的需求——您可以使用 Python 的标准库 csv 模块读取每个 TSV 文件(它可以使用制表符分隔和逗号分隔等,别担心!-)并使用xlwt(可能通过此cheatsheet;-)创建一个XLS文件,在其中制作表格,根据您通过csv读取的数据构建每张表格等。不确定XLSX与普通XLS支持但也许 XLS 就足够了……?
【解决方案2】:
直接创建Excel文件最好的python模块是xlwt,但不支持XLSX。
在我看来,您的选择是:
- 如果您只有“几个”,您可以手动完成。
- 使用
pythonwin通过COM控制Excel。这需要您在安装了 Excel 2007 的 Windows 机器上运行代码。
- 使用 python 对 TSV 进行一些预处理,以生成一种格式,使步骤 (1) 更容易。我不确定 Excel 是否读取 TSV,但它肯定会直接读取 CSV 文件。
【解决方案3】:
请注意,Excel 2007 将非常乐意读取“旧版”XLS 文件(由 Excel 97-2003 和 xlwt 编写的文件)。您需要 XLSX 文件,因为.....?
如果您想使用 Excel 在决定每条数据是数字、日期还是某些文本时选择的默认值,请使用 pythonwin 驱动 Excel 2007。如果数据采用固定布局,例如除了可能的标题行之外,每一列都包含一种已知类型的数据,请考虑使用 xlwt。
您可能希望通过 http://www.python-excel.org 访问 xlwt,其中包含 xlrd、xlwt 和 xlutils 的最新教程。