修复Excel文件

时间:2015-02-26 15:46:56

标签: python macos import-from-excel

我有大约1500个从movescount.com下载的excel电子表格文件 - 这些文件包含几年内拍摄的心率数据。我想用一些Python + openpyxl来处理这些文件。问题是用openpyxl打开excel文件失败。具体来说,它抱怨缺少styles.xml定义。 Apple的Numbers也无法打开该文件。当我使用MS Excel(可以正常工作)打开文件并立即保存文件时,我可以打开并使用python和openpyxl处理它。

显然,MS Excel正在修复一些格式问题。但我想避免使用MS Excel打开并保存文件 - 特别是因为这意味着我需要在MS Windows框中执行此操作。在我的OS X机器上动态修复这些文件的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

Excel xlsx文件是文件的压缩存档。因此,只要您有一个好的文件,就可以将丢失的文件写入xlsx存档。

import zipfile

with zipfile.ZipFile('/path/to/goodfile.xlsx', 'r') as zgood:
    styles_xml = zgood.read('xl/styles.xml')

with zipfile.ZipFile('/path/to/badfile.xlsx', 'a') as zbad:
    zbad.writestr('xl/styles.xml', styles_xml)