openpyxl load_workbook 错误 expected <class ‘str‘>

Google很多方法都不行,唯有自己看源码。

发现openpyxl处理ExternalData时会把ID解析为{http://schemas.openxmlformats.org/officeDocument/2006/relationships}id,从而丢失了ID的属性,当初始化类的时候就会因为ID值缺失而报错。

在不修改openpyxl的代码情况下,最可行的是把ExternalData的xml元素删掉。

# 除去图表的externalData属性,以便openpyxl读取
externalData_REGEX = re.compile(b'<c:externalData.*</c:externalData>')

with zipfile.ZipFile(f_电渠日报) as zf:
    excel_obj = {zi.filename:zf.read(zi) for zi in zf.filelist}
    
with zipfile.ZipFile(f_电渠日报,'w') as zf1:
    for zi, duffer in excel_obj.items():
        zf1.writestr(zi,externalData_REGEX.sub(b'',duffer))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: openpyxl load_workbook是一个Python库中的函数,用于加载Excel工作簿文件。它可以读取Excel文件中的数据和格式,并将其转换为Python对象,以便进行进一步的处理和分析。该函数可以接受Excel文件的路径或文件对象作为参数,并返回一个Workbook对象,该对象包含了Excel文件中的所有工作表和数据。使用openpyxl load_workbook函数可以方便地读取和处理Excel文件中的数据,是Python数据分析和处理中常用的工具之一。 ### 回答2: openpyxl是一个Python库,旨在使用最新的Excel文件格式(xlsx和xlsm)进行操作。其中,load_workbook方法是openpyxl库中用于加载Excel工作簿的方法。在Python中使用openpyxl库,可以将Excel文件中的数据读取到Python程序中,用于数据分析、处理等应用。 load_workbook方法有几个重要的参数,包括文件名、读取数据时的方式、数据只读模式等。其中,最基本的参数是文件名,需要指定要读取的Excel文件的路径和文件名。在Windows操作系统中,可以使用类似于“C:\test.xlsx”的路径格式来指定Excel文件的位置。在Linux或Mac OS操作系统中,需要将路径中的反斜杠“\”替换为正斜杠“/”。 load_workbook方法默认使用“guess_types=True”模式来读取Excel文件中的数据类型。它会尝试猜测Excel表格中的每个单元格的数据类型,并进行相应的转换。如果Excel表格中包含日期、时间或其他特殊格式的数字,通常建议关闭“guess_types”模式,手动指定数据类型。 另一个可选参数是数据只读模式,通过设置“read_only=True”可以打开只读模式。在只读模式下,数据只能从Excel文件中读取,无法进行修改。这对于大型的Excel文件或只需要获取数据的应用程序非常有效。只读模式还可以通过提高加载和读取速度来改善整体性能。 总的来说,openpyxl库非常强大,可读取Excel文件中的所有数据,并在Python代码中进行进一步处理和操作。使用load_workbook方法可以方便地加载Excel工作簿,并获取所需的数据。此外,openpyxl库还提供了其他方法和功能,用于处理和修改Excel文件。因此,它是Python中数据分析和可视化应用的强大工具之一。 ### 回答3: openpyxl是一种Python库,它允许对Excel文件进行读写操作。其中,load_workbook函数是openpyxl库中用于打开一个Excel文件的函数。 在使用load_workbook函数时,首先需要导入openpyxl库: ``` import openpyxl ``` 然后,使用load_workbook函数打开Excel文件: ``` wb = openpyxl.load_workbook('filename.xlsx') ``` 其中,'filename.xlsx'代表要打开的Excel文件名。如果文件不在当前工作目录下,则需要指定文件路径。 打开Excel文件后,就可以对其中的工作表、单元格等进行操作了。比如,可以使用sheetnames属性获取所有工作表的名称: ``` sheet_names = wb.sheetnames ``` 也可以选定特定的工作表进行操作,比如选定名为'Sheet1'的工作表: ``` ws = wb['Sheet1'] ``` 接下来,就可以对选定的工作表进行读写操作。比如,可以使用cell函数获取某个单元格的值: ``` value = ws.cell(row=1, column=1).value ``` 其中,row和column分别代表行和列的编号,从1开始。如果要给某个单元格赋值,可以使用相同的方法: ``` ws.cell(row=1, column=1, value='Hello, World!') ``` 除此之外,openpyxl库还提供了许多其他的函数和属性,可以根据具体的需求进行使用。使用load_workbook函数,可以方便地打开并操作Excel文件,使程序的编写更加高效和简便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值