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.nrows
和sheet.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
改成r
和j
来c
。 为了额外的好处,我添加了一个更完整的代码示例代码。 此代码打开一个现有的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