使用python将文件写入excel的迭代错误

时间:2014-09-23 05:29:32

标签: excel python-2.7

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

我是蟒蛇的滑板。在这里,我正在尝试使用 xlrd 读取数据的xls文件,并通过 xlsxwriter 模块将其复制到另一个xlsx文件。但数据不会粘贴在创建的 xlsx 表中。请指导我完成这个。 上面是我的确切代码。如果有任何错误,请纠正我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的示例程序几乎可以正常运行。主要是需要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()