xlsxwriter和xlwt:将字符串列表写入单元格

6 python excel xlwt xlsxwriter

我目前正在使用xlwt非常成功地创建.xls文件.我也在学习xlsxwriter以寻找可能的未来应用程序,我需要它的一些功能.

xlwt平滑地将字符串列表写入单元格.

例如

import xlwt
a = ['January\n','February\n','March\n','April\n','May\n','June\n']
book = xlwt.Workbook()
sheet = book.add_sheet('Test')
sheet.write(0,0,a)
book.save('Test.xls')
Run Code Online (Sandbox Code Playgroud)

打开Test.xls文件,启用换行文本,单元格A1显示:

January
February
March
April
May
June
Run Code Online (Sandbox Code Playgroud)

我尝试用xlsxwriter做类似的事情

import xlsxwriter
xbook = xlsxwriter.Workbook('Test.xlsx')
xsheet = xbook.add_worksheet('Test')
xsheet.write(0,0,a)
Run Code Online (Sandbox Code Playgroud)

在这里,我得到一个冗长的错误信息,最终到达

...anaconda/lib/python2.7/site-packages/xlsxwriter/worksheet.pyc in write(self, row, col, *args)
    416         # We haven't matched a supported type. Try float.
    417         try:
--> 418             f = float(token)
    419             if not self._isnan(f) and not self._isinf(f):
    420                 return self.write_number(row, col, f, *args[1:])

TypeError: float() argument must be a string or a number
Run Code Online (Sandbox Code Playgroud)

我尝试过其他xlsxwriter写入方法,并且都给出了大致相似的错误.

其他研究:我已经相当彻底地搜索了这个网站.我还浏览了优秀的xlsxwriter PDF并检查了xlsxwriter Github页面.到目前为止,我没有遇到任何解决这个问题的事情.

再次,xlwt现在很好,我希望在不久的将来添加图表和迷你图以及创建xlsx文件.

谢谢,

俱乐部里的老家伙

sk1*_*k11 2

不,您不能list使用 编写类型xlsxwrite.write()

检查文档

如果上述类型均不匹配,则使用 float() 计算该值,以查看它是否对应于用户定义的浮点类型。如果是,则使用 write_number() 写入。

这就是你收到错误的原因TypeError: float() argument must be a string or a number

要解决此问题,请尝试将 转换list为 a string,按照 Paulo Scardine 的建议(在评论中):

import xlsxwriter
a = ['January\n','February\n','March\n','April\n','May\n','June\n']
xbook = xlsxwriter.Workbook('Test.xlsx')
xsheet = xbook.add_worksheet('Test')
xsheet.write(0,0,''.join(a))
Run Code Online (Sandbox Code Playgroud)