OpenPyXL 不会保存到带有替换更改的新 Excel 文件

Posted

技术标签:

【中文标题】OpenPyXL 不会保存到带有替换更改的新 Excel 文件【英文标题】:OpenPyXL doesn't save to new Excel file with replaced changes 【发布时间】:2020-10-21 11:28:32 【问题描述】:

我正在尝试替换 Excel 文件中的值(使用 Tesseract 的 OCR 导致字符不正确) 它正在编写新的 Excel 文件,但它没有使用替换的值。

编辑 - 忘记了 .value。这行得通。

import openpyxl
import re

wb = openpyxl.load_workbook('file01.xlsx')
# print(wb.sheetnames)
ws = wb["Sheet1"]
number_rows = ws.max_row

# Set Column number here ! Column 8 is H.

for rownum in range(1, number_rows):
    try:
        currentcell = ws.cell(row=rownum, column=8).value
        # print("Original", currentcell)
        # replace anything that's not € or a digit . or , (OCR errors)
        ws.cell(row=rownum, column=8).value  = re.sub(r"[^€$\d\.\,]", "", currentcell)
        # print("Replaced with value: ", currentcell)
    except:
        print("Something went wrong")

wb.save(r'F:\PathToFile\fixed01.xlsx') 

您可以使用 H 列中的 Excel 文件 file01.xlsx 对此进行测试:

€105,00|
€90,00)
€200,00)
€30,00)
€60,00)
€60,00)
€60,00
€60,00)
€20,00)
€63,00)
€25,00)
€25,00|
€63,00)
€25,00|

currentcell = re.sub(r"[^€$\d\.\,]", "", currentcell)

不覆盖该单元格的当前值??

【问题讨论】:

【参考方案1】:
ws.cell(row=rownum, column=8).value = re.sub(r"[^€$\d\.\,]", "", currentcell)

有效(忘记了 .value)

【讨论】:

以上是关于OpenPyXL 不会保存到带有替换更改的新 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 openpyxl 保存 xlsx 并获得正确的编码? 【垃圾人物】

如何使用 openpyxl 使用宏保存 XLSM 文件

如何将更改保存到现有的 excel 文件,而不是创建包含更改的 txt 文件?

提交表单时,不会保存对 Rails 输入标记的 javascript 更改

如何使用openpyxl将qtablewidget数据保存到excel文件中

Python - 更改数据框的标题颜色并将其保存到excel文件