我目前有一个有5个工作表的工作手册。a-e列中有数据,虽然每个工作表可能在同一列中有数据,但每个工作表的行数不同。我在f列输入一个公式,从单元格F4到工作表的最后一行。 我能够循环通过工作表,并能够创建一个公式,从F4到最后一行,但我不能让这两个工作在一起。在
编码
import os
import os.path
import urllib
import xlrd
import xlwt
from xlutils.copy import copy
fname = "test.xls"
destination = 'C:\Users\Raj Saha\Google Drive\Python\Excel-Integration'
rb = xlrd.open_workbook(fname,formatting_info=True) #original workbook
r_sheet = rb.sheet_by_index(1) #origianl worksheet
style = xlwt.easyxf('font: bold 1')
wb = copy(rb) #virtual workbook
#sheet = wb.get_sheet(1)
shxrange = range(rb.nsheets)
sh = rb.sheet_by_name("Data 1")
#print "total rows: %d, rows less headers: %d" % (nrows, rows)
for sheet in shxrange:
nrows = sheet.nrows
rows = nrows - 4
for i in range(rows):
sheet.write(i+3, 5, xlwt.Formula("B%d-C%d" % (i+4, i+4)))
sheet.write(2,5,"CL1-CL2",style)
wb.save(fname)
我收到以下错误消息:
File "C:/formulas_multi_sheets.py", line 31, in nrows = sheet.nrows
AttributeError: 'int' object has no attribute 'nrows'
我假设第31行中的错误适用于第32行。我使用的是python2.7。在
由于xlrd和wlwt的限制,我选择了win32com。以下是我想出的解决方案。我能够在多个工作表中对数据进行排序,并将公式添加到多个工作表中。在
编码
在这里,shxrange给出了整数。您需要的是
sheet
类对象。为了获取工作簿中每一页的对象相关问题 更多 >
编程相关推荐