【问题标题】:Iteration error writing file to excel with python使用python将文件写入excel的迭代错误
【发布时间】:2014-09-23 17:47:55
【问题描述】:
import string
import xlrd
import xlsxwriter
workbook = xlsxwriter.Workbook('C:\T\file.xlsx')
worksheet = workbook.add_worksheet()
book = open_workbook(r'C:\T\test.xls','r')
sheet = book.sheet_by_index(0)
for row_index in range(sheet.nrows):
  for col_index in range(sheet.ncols):
     print sheet.cell(row_index,0).value
     x = sheet.cell(row_index,0).value
     worksheet.write_string(row_index,col_index,x)
workbook.close()

我对 python 不熟悉。在这里,我尝试使用 xlrd 读取 xls 文件以获取数据,并通过 xlsxwriter 模块将其复制到另一个 xlsx 文件。但数据不会粘贴到创建的 xlsx 工作表中。请指导我完成这个。 以上是我的确切代码。如有错误请指正。

提前致谢。

【问题讨论】:

    标签: excel python-2.7


    【解决方案1】:

    您的示例程序几乎可以运行。主要是它需要 open_workbook() 方法以类为前缀,最好使用 XlsxWriter write() 而不是 write_string() ,除非您确定您正在读取的所有数据都是字符串类型。此外,该程序仅从第 0 列读取值。

    以下是相同的示例,其中进行了这些更改。我还重命名了变量in_out_,以便更清楚地了解哪个模块正在调用哪个方法:

    import xlrd
    import xlsxwriter
    
    out_workbook = xlsxwriter.Workbook('file.xlsx')
    out_worksheet = out_workbook.add_worksheet()
    
    in_workbook = xlrd.open_workbook(r'test.xls', 'r')
    in_worksheet = in_workbook.sheet_by_index(0)
    
    for row_index in range(in_worksheet.nrows):
        for col_index in range(in_worksheet.ncols):
            cell_value = in_worksheet.cell(row_index, col_index).value
            out_worksheet.write(row_index, col_index, cell_value)
            print cell_value
    
    out_workbook.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多