修改代码错误,import unicodedata as ud from openpyxl import load_workbook # 指定表格文件名列表 filenames = ['附件一:2022年12月末存量公司客户管户认领情况表__海沧.xlsx.xlsx', '附件三:2022年12月末存量机构客户管户认领情况表__海沧支行.xlsx', '附件二:2023年3月末新拓公司客户管户认领情况表__海沧.xlsx', '附件四:2023年3月末新拓机构客户管户认领情况表__海沧支行.xlsx' ] # 使用列表推导式读取多个表格 workbooks = [load_workbook(filename) for filename in filenames] # 遍历每个工作表 for workbook in workbooks: for sheetname in workbook.sheetnames: sheet = workbook[sheetname] # 遍历每个单元格 for row in sheet.iter_rows(): for cell in row: # 判断单元格是否为字符串类型 if isinstance(cell.value, str): # 将全角字符转换为半角字符 cell.value = ud.normalize('NFKC', cell.value) # 保存修改后的 Excel 文件 for i, workbook in enumerate(workbooks): filename = filenames[i].replace(".xlsx", "-1.xlsx") workbook.save(filename)
时间: 2024-01-13 10:03:17 浏览: 73
在你的代码中,第一个文件名后面多了一个 `.xlsx`,需要把它去掉。同时,文件名中包含中文字符,需要使用 UTF-8 编码来避免出现编码错误。修改后的代码如下:
```python
import unicodedata as ud
from openpyxl import load_workbook
# 指定表格文件名列表,使用 UTF-8 编码
filenames = [
'附件一:2022年12月末存量公司客户管户认领情况表__海沧.xlsx',
'附件三:2022年12月末存量机构客户管户认领情况表__海沧支行.xlsx',
'附件二:2023年3月末新拓公司客户管户认领情况表__海沧.xlsx',
'附件四:2023年3月末新拓机构客户管户认领情况表__海沧支行.xlsx'
]
# 使用列表推导式读取多个表格
workbooks = [load_workbook(filename, read_only=True) for filename in filenames]
# 遍历每个工作表
for workbook in workbooks:
for sheetname in workbook.sheetnames:
sheet = workbook[sheetname]
# 遍历每个单元格
for row in sheet.iter_rows():
for cell in row:
# 判断单元格是否为字符串类型
if isinstance(cell.value, str):
# 将全角字符转换为半角字符
cell.value = ud.normalize('NFKC', cell.value)
# 保存修改后的 Excel 文件
for i, workbook in enumerate(workbooks):
filename = filenames[i].replace(".xlsx", "-1.xlsx")
workbook.save(filename)
```
这样修改后应该就可以正常运行了。
阅读全文