簡體   English   中英

無法打開openpyxl中的Excel文件

[英]Excel file in openpyxl cannot be opened

另一個系統將 Excel 文件保存到特定文件夾。 我可以很好地手動打開該文件,並且單元格不會顯示任何奇怪的東西。

我如何打開文件:

Tabelle_data = openpyxl.load_workbook(file, read_only=True)
data = Tabelle_data["DATA"]

我想遍歷所有行:

Zeilen_data = 0
while 1:
    if data.cell(row=Zeilen_data+1, column=1).value != None:
        Zeilen_data += 1
        else:
            break

(本可以做得更短,我知道)無論如何,已經在第 1 列,單元格 2 中,它只包含一個 0,發生此錯誤:

Traceback (most recent call last):
  File "/Volumes/paul/Armin/SBP/data.py", line 57, in <module>
    if data.cell(row=Zeilen_data+1, column=1).value != None:
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 240, in cell
    cell = self._get_cell(row, column)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py", line 128, in _get_cell
    for row in self._cells_by_row(column, row, column, row):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py", line 79, in _cells_by_row
    for idx, row in parser.parse():
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_reader.py", line 155, in parse
    row = self.parse_row(element)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_reader.py", line 286, in parse_row
    cells = [self.parse_cell(el) for el in row]
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_reader.py", line 286, in <listcomp>
    cells = [self.parse_cell(el) for el in row]
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_reader.py", line 202, in parse_cell
    value = _cast_number(value)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openpyxl/worksheet/_reader.py", line 81, in _cast_number
    return float(value)
ValueError: could not convert string to float: '.'

我已經沒有如何解決它的想法了。 將行更改為if str(data.cell(row=Zeilen_data+1, column=1).value):= str("None"):不能修復它。

我發現的唯一方法是手動打開文件並再次保存。 然后一切正常,但我不喜歡每次都手動打開並保存它。

我設法修復它。 因此,系統現在保存文件 als.xls 並在我的程序中包含:

import pyexcel 
xlsxfile = file.replace(".xlsx",".xlsx")
pyexcel.save_book_as(file_name=file, dest_file_name=xlsxfile)
os.remove(file)

然后我可以使用 .xlsx 文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM