Python将Excel文件(xls或xlsx)转换为/从ODS

7

我一直在搜索能够将Excel文件转换为/从ODS格式的Python库或工具,但是一直没有找到任何东西。

我需要能够输入和输出两种格式的数据。我们不需要担心合并单元格、公式或任何非直观的内容。


Python Excel库(http://www.python-excel.org/)加上odslib(https://code.google.com/p/odslib-python/),为什么不能使用? - BenDundee
完全不是。我只是不想重新发明轮子,如果已经存在相应的东西。如果没有类似的东西存在,我很乐意编写一个程序来完成这项工作并公开发布。 - Ashwin Balamohan
2个回答

10
如果您已经安装了LibreOffice,您可以在其无头模式周围执行Python执行包装器:
$ /usr/bin/libreoffice --headless --invisible -convert-to ods /home/cwgem/Downloads/QTL_Sample_data.xls 
convert /home/cwgem/Downloads/QTL_Sample_data.xls -> /home/cwgem/QTL_Sample_data.ods using OpenDocument Spreadsheet Flat XML
$ /usr/bin/libreoffice --headless --invisible -convert-to xls /home/cwgem/QTL_Sample_data.ods 
convert /home/cwgem/QTL_Sample_data.ods -> /home/cwgem/QTL_Sample_data.xls using

这比通过库路径实现要容易一些。

谢谢。这看起来是一个可行的方法。 - Ashwin Balamohan
请注意,如果LibreOffice已经在运行,则此命令无效。 - lumbric
如果Windows上的可执行文件是soffice.exe,那么它无法工作。 - Santosh Kumar

1

我成功地使用以下方法将xlsx文件转换为ods文件:

  1. 安装pyexcel-xlsx
  2. 安装pyexcel-ods3

然后使用以下代码:

from pyexcel_ods3 import save_data
from pyexcel_xlsx import get_data

dataXlsx = get_data("file.xlsx")
save_data("file.ods", dataXlsx)

注意:在输出的ODS文件中,xlsx文件的颜色/设计已被删除...因此它不是真正的成功。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接