我目前非常成功地使用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')

打开Test.xls文件,启用自动换行,单元格A1显示:
January
February
March
April
May
June

我试图用xlsxwriter做类似的事情
import xlsxwriter
xbook = xlsxwriter.Workbook('Test.xlsx')
xsheet = xbook.add_worksheet('Test')
xsheet.write(0,0,a)

在这里,我收到一条冗长的错误消息,最终导致
...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

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

其他研究:我已经对该网站进行了彻底的搜索。我还阅读了出色的xlsxwriter PDF,并检查了xlsxwriter Github页面。到目前为止,我还没有遇到任何解决此问题的方法。

同样,xlwt现在还不错,我预计需要在不久的将来添加图表和迷你图以及创建xlsx文件。

谢谢,

俱乐部里的老家伙

最佳答案

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

检查docs



这就是为什么出现错误TypeError: float() argument must be a string or a number的原因

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

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))

关于python - xlsxwriter和xlwt : Writing a list of strings to a cell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25883017/

10-12 21:04