python写入excel时设置数据格式为数字

这里写自定义目录标题

目标

在这里插入图片描述

思路

参考

如何将Openpyxl中单元格的文本格式转换为数字格式?

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()
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值