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 并获得正确的编码? 【垃圾人物】
如何将更改保存到现有的 excel 文件,而不是创建包含更改的 txt 文件?
提交表单时,不会保存对 Rails 输入标记的 javascript 更改