【问题标题】:"TypeError: Unsupported type <class 'list'> in write()"“TypeError:不支持的类型 <class 'list'> in write()”
【发布时间】:2016-12-27 07:37:38
【问题描述】:

当条件不是大写时,我希望在 excel 文件中打印“out.csv”数据。但是 out.csv 中的数据是数据列表而不是字符串。如何将列表写入 excel 文件而不将其转换为字符串? (因为我有其他文件可能需要使用列表而不是字符串)

Python 版本 #3.5.1

import xlsxwriter
import csv
import xlwt

f1= open('out.csv')
data=csv.reader(f1)

# Create a new workbook and add a worksheet
workbook = xlsxwriter.Workbook('1.xlsx')
worksheet = workbook.add_worksheet()

# Write some test data.

for module in data:
    str1 = ''.join(module)
    if str1.isupper():
      pass
    else:
      worksheet.write('A', module)


workbook.close()

【问题讨论】:

  • 你只想要worksheet.write('A', str1)吗?我对xlsxwriter一无所知,所以我不知道您是否可以一次写出多个项目。
  • 也许这会有所帮助:stackoverflow.com/questions/19305109/… 另外,为什么你不能有一个字符串和一个你想写和使用的列表版本?
  • 我在shell中的输出是[AAA_BBB_CCC_DDD_EEE]、[FFF_GGG_HHH_III_JJJ]等,它们是一个数组形式的列表。但我希望在 Excel 文件的 A1、A2 等列中循环打印这些输出

标签: python python-3.x xlsxwriter


【解决方案1】:

如何将列表写入excel文件而不将其转换为字符串

您可以循环遍历列表并 write() 输出每个元素,也可以使用 XlsxWriter write_row() 方法一次性写入列表。

类似这样的:

row = 0
col = 0
for module in data:
    str1 = ''.join(module)
    if str1.isupper():
        pass
    else:
        worksheet.write_row(row, col, module)
        row += 1

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 2016-02-23
    • 2021-06-02
    • 2014-12-28
    • 2012-12-12
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多