使用openpyxl 的load_workbook会报错KeyError: '$A$'

wps表格文件属性是N(不可存档)。
正常新建保存的wps表格文件一样,在自定义属性一栏有ICV、KSOProductBuildVer的两个值,但运行报错的wps表格没有这两个值,是空白的。请问这种情况下应该怎么加载文件?

img

img

【以下回答由 GPT 生成】

首先,我们需要确认一下错误的具体原因。根据问题描述,错误是由于在加载表格文件时遇到了一个KeyError: '$A$'引起的。这个错误可能是由于文件中某个单元格的键值不存在或格式错误导致的。为了解决这个问题,我们可以尝试以下步骤:

  1. 确认模块导入和文件路径是否正确:首先,我们需要确认我们已经正确导入了openpyxl模块,并且提供了正确的文件路径。可以使用pip来安装openpyxl模块:
pip install openpyxl

导入模块的方式如下:

from openpyxl import load_workbook

确认文件路径是否正确,如果不确定的话,可以使用绝对路径来确保文件能够被找到。

  1. 读取文件:使用load_workbook函数加载文件,并将其存储在一个变量中,代码如下:
workbook = load_workbook(filename='path/to/your/file.xlsx')

请将'path/to/your/file.xlsx'替换为您自己文件的路径。

  1. 定位问题单元格:问题描述中提到,报错的wps表格文件中存在两个属性值,ICV和KSOProductBuildVer,但是这两个属性值是空白的。我们可以尝试使用workbook.properties属性来访问自定义属性。
properties = workbook.properties
  1. 检查自定义属性:接下来,我们需要检查自定义属性中的值是否存在并且正确。可以使用.custom属性来获取自定义属性的字典形式。
custom_properties = properties.custom
  1. 检查关键属性:尝试获取ICV和KSOProductBuildVer的值,并检查是否存在。
icv = custom_properties.get('ICV')
ksoproductbuildver = custom_properties.get('KSOProductBuildVer')

if icv is None or ksoproductbuildver is None:
    print("ICV 或 KSOProductBuildVer属性不存在或为空")
else:
    print("ICV 属性值为:", icv)
    print("KSOProductBuildVer 属性值为:", ksoproductbuildver)

请注意,ICV和KSOProductBuildVer应该是自定义属性的键值,所以根据您的实际情况进行调整。

以上是一种尝试解决问题的方法,您可以根据具体情况进行调整。如果以上方法不能解决您的问题,可能需要进一步检查文件的内容和格式,或者尝试其他库来加载和处理wps表格文件。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^