Python读取xlsx整数数据与字符串拼接报TypeError如何处理
解决方案
你现有代码存在两处问题:
- 逻辑错误:
a.write()方法的返回值为None,不可将其返回值与字符串拼接后再次传入a.write() - 类型错误:数值类型的
cell.value无法直接和字符串拼接
方案1:读取时直接转字符串(最简便)
无需修改读文件的逻辑,读取单元格内容时统一转成字符串即可,调整后代码如下:
for row in ws.iter_rows(min_row =1, max_col=2): for cell in row: # 先拼接内容,再统一写入 write_content = 'a string"' + str(cell.value) a.write(write_content)
如果需要严格匹配Excel中单元格的显示格式(例如单元格设置了百分比、小数位数等格式,希望读取的字符串和Excel中展示的完全一致),可以直接读取单元格的text属性,该属性本身就是字符串类型:
for row in ws.iter_rows(min_row =1, max_col=2): for cell in row: write_content = 'a string"' + cell.text a.write(write_content)
方案2:读取文件时强制所有内容为字符串
如果使用pandas读取xlsx文件,可以在加载文件时直接指定全局类型为字符串,后续所有取值都是字符串类型,无需额外转换:
import pandas as pd # 所有单元格内容均按字符串读取 df = pd.read_excel("你的文件路径.xlsx", dtype=str)
内容的提问来源于stack exchange,提问作者Fabricio G
相关产品推荐
相关产品推荐

