修复 Excel 个文件
repairing Excel file
我从 movescount.com 下载了大约 1500 个 excel 电子表格文件 - 这些文件包含几年来的心率数据。我想用一些 Python + openpyxl 来处理这些文件。问题是用 openpyxl 打开 excel 文件失败。具体来说,它抱怨缺少 styles.xml 定义。 Apple 的 Numbers 也无法打开该文件。当我用 MS Excel 打开文件(有效)并立即保存文件时,我可以用 python 和 openpyxl 打开和处理它就好了。
很明显,MS Excel 正在修复一些格式问题。但我想避免必须使用 MS Excel 打开和保存文件 - 特别是因为这意味着我需要在 MS Windows 框上执行此操作。在我的 OS X 机器上即时修复这些文件的最佳方法是什么?
Excelxlsx 文件是文件的压缩存档。所以你可以将丢失的文件写入 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)
我从 movescount.com 下载了大约 1500 个 excel 电子表格文件 - 这些文件包含几年来的心率数据。我想用一些 Python + openpyxl 来处理这些文件。问题是用 openpyxl 打开 excel 文件失败。具体来说,它抱怨缺少 styles.xml 定义。 Apple 的 Numbers 也无法打开该文件。当我用 MS Excel 打开文件(有效)并立即保存文件时,我可以用 python 和 openpyxl 打开和处理它就好了。
很明显,MS Excel 正在修复一些格式问题。但我想避免必须使用 MS Excel 打开和保存文件 - 特别是因为这意味着我需要在 MS Windows 框上执行此操作。在我的 OS X 机器上即时修复这些文件的最佳方法是什么?
Excelxlsx 文件是文件的压缩存档。所以你可以将丢失的文件写入 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)