使用xlsxwriter将字典转XLSX时字符串值被拆分为单字符问题咨询
问题原因
write_column()方法要求传入的第三个参数为可迭代序列,会将序列内的每个元素逐行写入对应列。字符串在Python中属于字符组成的可迭代对象,因此传入后会被自动拆分为单个字符逐行填充。你之前尝试的join操作并未改变传入参数是字符串的本质,因此无法解决问题,操作不当还会导致内容为空。
解决方案
两种修改方式二选一即可:
方案1:直接使用write()方法写入单行内容
这是最符合需求的方案,直接指定第二行、对应列写入字符串值即可:
import xlsxwriter fieldsDict = {'1': 'abc', '2': 'def', '3': 'ghi'} workbook = xlsxwriter.Workbook('output.xlsx') worksheet = workbook.add_worksheet('stuff') colNum = 0 for key, value in fieldsDict.items(): worksheet.write(0, colNum, key) # 把write_column改为write,指定行号为1(第二行) worksheet.write(1, colNum, value) colNum += 1 workbook.close()
方案2:将字符串包装为单元素列表传入write_column()
如果你需要保留write_column()的用法,只需要把字符串放到列表里,让可迭代对象仅包含一个完整字符串元素即可:
# 仅修改对应行即可 worksheet.write_column(1, colNum, [value])
内容的提问来源于stack exchange,提问作者toy_soldier111
相关产品推荐
相关产品推荐

