You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

openpyxl读取Excel时如何获取单元格真实值并转换格式

解决Excel读取后None与日期格式转换问题

你需要遍历读取到的每一行数据,逐个处理单元格值:将None转为空字符串,datetime对象转为指定格式的日期字符串。具体代码如下:

import openpyxl
from datetime import datetime

wb1 = openpyxl.load_workbook('test.xlsx')
ws1 = wb1.worksheets[0]

# 逐行处理每个单元格值
content = []
for row in ws1.iter_rows(values_only=True):
    processed_row = []
    for cell_value in row:
        if cell_value is None:
            processed_row.append('')
        elif isinstance(cell_value, datetime):
            # 可自定义日期格式,示例为'年-月-日'
            processed_row.append(cell_value.strftime('%Y-%m-%d'))
        else:
            processed_row.append(cell_value)
    content.append(processed_row)

也可以用更简洁的嵌套列表推导式实现:

content = [
    [
        '' if val is None 
        else val.strftime('%Y-%m-%d') if isinstance(val, datetime) 
        else val 
        for val in row
    ] 
    for row in ws1.iter_rows(values_only=True)
]

你之前的方法无效原因

直接将ws1.iter_rows(values_only=True)转为字符串,本质是把整个生成器对象转换成了字符串形式,并没有遍历处理每个单元格的具体值,自然无法完成None和日期格式的转换。

内容的提问来源于stack exchange,提问作者Nico44044

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:22:02