目标
思路
参考
import openpyxl
# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')
# 选择工作表
worksheet = workbook.active
# 遍历单元格
for row in worksheet.iter_rows(min_row=1, max_row=5, min_col=1, max_col=2):
for cell in row:
# 如果单元格的值为数字字符串,则转换成数字类型
if cell.value is not None and str(cell.value).isnumeric():
cell.value = int(cell.value)
# 将单元格格式设置为数字格式
cell.number_format = '0'
# 保存Excel文件
workbook.save('example.xlsx')
问题
使用以上代码依然不是“数字”。
但是
我发现格式居然变成了自定义
于是,我手动改写了一个单元格的格式为数字,然后在for循环加了断点,找到格式为数字的单元格,发现格式居然是0.00_);[Red]\\(0.00\\)
解决方式
def turn_to_number(file_name):
# 打开Excel文件
workbook = openpyxl.load_workbook(file_name)
# 选择工作表
worksheet = workbook.active
for i in range(2, 10):
for j in [6, 7]:
if worksheet.cell(i, j).value is not None and str(worksheet.cell(i, j).value) != "":
worksheet.cell(i, j).number_format = '0.00_);[Red]\\(0.00\\)'
else:
worksheet.cell(i, j, None)
# 保存Excel文件
workbook.save(file_name)
workbook.close()