如何在Python中不使用Pandas将CSV写入代码改为XLSX写入?
修正XLSX文件写入代码的方法
错误原因
xlsxwriter.Workbook不需要手动通过open打开文件,直接传入文件路径即可,手动打开文件会导致格式冲突worksheet.write()必须传入行号、列号、对应值三个参数,直接传入字典会触发类型错误
修正后的完整代码
首先确保安装并导入xlsxwriter:
import xlsxwriter
替换原CSV写入逻辑:
details_file = self.get_local_storage_path() + '/Myfile.xlsx' csv_columns = ('id', 'name', 'place', 'salary', 'email') # 初始化工作簿和工作表 workbook = xlsxwriter.Workbook(details_file) worksheet = workbook.add_worksheet() # 写入表头 for col_idx, header in enumerate(csv_columns): worksheet.write(0, col_idx, header) # 逐行写入数据 current_row = 1 for data in details: # 按表头顺序匹配字典中的字段值,get方法兼容缺失字段(对应原CSV代码的extrasaction='ignore') for col_idx, field in enumerate(csv_columns): worksheet.write(current_row, col_idx, data.get(field)) current_row += 1 # 关闭工作簿完成写入 workbook.close()
简化说明
- 用
enumerate遍历表头,自动获取列索引,避免手动写死列号 data.get(field)确保即使字典中缺失某个字段(和原CSV代码的extrasaction='ignore'逻辑一致)也不会报错,只会写入空值- 无需手动打开文件,
xlsxwriter.Workbook会自动处理文件的创建和写入流程
内容的提问来源于stack exchange,提问作者Mia
相关产品推荐
相关产品推荐

