繁体   English   中英

Excel 使用 pandas 和 openpyxl 时出错:已修复部分:/xl/worksheets/sheet1.xml 部分出现 XML 错误。 HRESULT 0x8000ffff 第 1 行,第 0 列

[英]Excel Error when using pandas and openpyxl: Repaired Part: /xl/worksheets/sheet1.xml part with XML error. HRESULT 0x8000ffff Line 1, column 0

我在写入 excel 文件后遇到错误。 这是我到目前为止所拥有的:

#locate source document
Path = Path(r'C:\Users\username\Test\EXCEL_Test.xlsx')

# open doc and go to active sheet
wb = load_workbook(filename = Path)
ws = wb.active


#add drop down list to each cell in a certain column
dv_v = DataValidation(type="list", formula1='"Y,N"', allow_blank=True)
    for cell in ws['D']:
        cell = ws.add_data_validation(dv_v)
wb.save(Path)

这些是打开 excel 文件时出现的两个错误:

第一个错误弹出窗口: “我们发现‘EXCEL_Test.xlsx’中的某些内容存在问题。您希望我们尽可能多地恢复吗?如果您信任此工作簿的来源,请单击是。”

第二个错误弹出窗口: “已修复部分:/xl/worksheets/sheet1.xml 部分出现 XML 错误。HRESULT 0x8000ffff 第 1 行,第 0 列。”

我的数据验证未显示,并且在尝试打开文件以查看 openpyxl 更改时文件出现上述错误。

也许如果有人可以帮助我找出为什么会出现这些错误? Python 以退出代码 0 结束,为什么数据验证在恢复的文件中显示为空白?

我认为您错误地使用了ws.add_data_validation(dv) 数据验证首先分配给 dv,然后将 dv 添加到单元格。 尝试这样做。

import openpyxl
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

#locate source document
Path = 'C:/Users/username/test/Excel_test.xlsx'

# open doc and go to active sheet
wb = openpyxl.load_workbook(filename = Path)
ws = wb['Sheet1']


#add drop down list to each cell in a certain column
dv = DataValidation(type="list", formula1='"Y,N"', allow_blank=True)
ws.add_data_validation(dv)

# This is the same as for the whole of column D
dv.add('D1:D1048576')
    
wb.save(Path)

看看这里的文档: https://openpyxl.readthedocs.io/en/stable/validation.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM