我试图将工作表上的所有单元格复制到新工作簿。我可以手动存储单元格值,如下面的示例代码中所示,并在各个单元格中粘贴变量,但我想自动收集单元格数据。我是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)
答案 0 :(得分:1)
您可以通过使用sheet.nrows
和sheet.ncols
作为限制来循环播放表单中的单元格。此外,请确保您没有将要创建的新工作表定义为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
代替sheet
。
答案 1 :(得分:0)
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