python:使用xlrd存储所有的单元格值,并使用xlwt写入新的工作簿

即时尝试复制到一个新的工作簿的工作表上的所有单元格。 我可以像下面的示例代码手动存储单元格值,并粘贴variables在各自的单元格,但我想自动收集单元格数据。 我是非常新的python,但我可以从概念上看到沿线的东西,但我可以用一些帮助来完成它,谢谢!

尝试自动化细胞收集

def cell(r,c): set r+=1 cellname = c.isalpha() + r if r <= sheet.nrow: cellname = (r,c,sheet.cell_value) 

……我在这里迷路,但我认为应该有一个sheet.ncols和nrows

目前的手动单元复制

  cellA1 = sheet.cell_value(0,0) cellA2 = sheet.cell_value(1,0) cellA3 = sheet.cell_value(2,0) cellA4 = sheet.cell_value(3,0) cellA5 = sheet.cell_value(4,0) cellB1 = sheet.cell_value(0,1) cellB2 = sheet.cell_value(1,1) workbook = xlwt.Workbook() sheet = workbook.add_sheet('ITEM DETAILS') 

手动细胞粘贴

 sheet.write(0, 0, cellA1) sheet.write(1, 0, cellA2) 

你可以简单地遍历表格中的单元格,使用sheet.nrowssheet.ncols作为循环的极限。 此外,请确保您没有将您创build的新工作表定义为工作sheet本身,请使用新名称。 例:

 newworkbook = xlwt.Workbook() newsheet = newworkbook.add_sheet('ITEM DETAILS') for r in range(sheet.nrows): for c in range(sheet.ncols): newsheet.write(r, c, sheet.cell_value(r, c)) 

然后使用newsheet而不是任何要使用新工作表的工作表。

Anand S Kumar的答案是正确的,但是你需要把i改成rjc 。 为了额外的好处,我添加了一个更完整的代码示例代码。 此代码打开一个现有的Excel文件,从第一张表中读取所有数据,并将相同的数据写入新的Excel文件。

  import os,xlrd,xlwt if os.path.isfile(outExcel):os.remove(outExcel)#delete file if it exists inExcel= (r'C:\yourpath\inFile.xls') outExcel= (r'C:\yourpath\outFile.xls') workbook = xlrd.open_workbook(inExcel) sheetIn = workbook.sheet_by_index(0) workbook = xlwt.Workbook() sheetOut = workbook.add_sheet('DATA') for r in range(sheetIn.nrows): for c in range(sheetIn.ncols): sheetOut.write(r, c, sheetIn.cell_value(r, c)) workbook.save(outExcel)#save the result