慕田峪7331174
2023-09-19 17:31:28
所以,我嘗試使用 openpyxl 用這一行打開一個 excel 文件wb_bs = openpyxl.load_workbook(filename=filepath)并得到這個錯誤:C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\styles\stylesheet.py:214: UserWarning: Workbook contains no default style, apply openpyxl's default warn("Workbook contains no default style, apply openpyxl's default")Traceback (most recent call last): wb_bs = openpyxl.load_workbook(filename=url_nova, data_only=True) File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook reader.read() File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 280, in read self.read_worksheets() File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 228, in read_worksheets ws_parser.bind_all() File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 434, in bind_all self.bind_cells() File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 337, in bind_cells for idx, row in self.parser.parse(): File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 149, in parse obj = prop[1].from_tree(element) File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree obj = desc.expected_type.from_tree(el) File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree return cls(**attrib)事情是:如果我創建 .xlsx 文件,它將打開如果我從這個特定來源(我需要的來源)下載文件并嘗試立即打開它,則會生成錯誤。如果我在打開并保存 .xlsx 文件(無更改)后運行代碼,它就會起作用。我想這與Excel版本沖突有關,但我已經嘗試了所有方法,但似乎沒有任何效果。openpyxl==3.0.5 python==3.8.5
2 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
這似乎是有關某些 Excel 文件的 Openpyxl 錯誤,報告如下:https:?//foss.heptapod.net/openpyxl/openpyxl/-/issues/1071
不幸的是,似乎沒有解決辦法,只有您找到的解決方法:
在剛剛發布的 Excel 版本(版本 1803(內部版本 9126.2259 即點即用))中,Microsoft 修改了超鏈接在 Excel 文件中的存儲方式。作為解決方法,您可以嘗試在 Google Sheets 或 LibreOffice 中打開并重新保存該文件。我在數據驗證方面遇到了類似的問題。

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
原因可能是 MS-Windows 的安全防護:每當您從外部源(互聯網)下載 MS-Office 文件時,MS-Windows 都會在該文件中插入一個標志,標記該文件只能在受保護的視圖中打開。該保護將保持不變,直到您啟用編輯并在設置安全標志的情況下保存文件。
打開新下載的 MS-Office 文件時出現的警告文本:
PROTECTED VIEW
Be careful - files from the Internet can contain viruses.
Unless you need to edit, it's safer to stay in Protected View.
添加回答
舉報
0/150
提交
取消