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
相关产品推荐
相关产品推荐

