def close(self):
self.xBook.Close(SaveChanges=0)
# close error msg
del self.xApp
def show(self):
print "Show generated report"
self.xApp.Visible = 1
def delSheet(self, sheet):
sht = self.xBook.Worksheets(sheet)
try:
sht.Delete()
print "sheet %s is deleted" % sheet
except:
print "Error: Delete sheet %s failed" % sheet
def hide(self):
self.xApp.Visible = 0
# get value from cell
def getCell(self,sheet, row, col):
"Get value of one cell"
sht = self.xBook.Worksheets(sheet)
return sht.Cells (row, col).Value
# set value for cell
def setCell(self, sheet, row, col, value=None, formula=None):
sht = self.xBook.Worksheets(sheet)
if formula :
sht.Cells(row, col).Formula = formula
else:
sht.Cells(row, col).Value = value
# return tuple
def getRange(self, sheet, row1, col1, row2, col2):
"return a 2d array ( i.e. tuple of tuples)"
sht = self.xBook.Worksheets(sheet)
return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value
# set tuple for range
def setRange(self, sheet, topRow, leftCol, data):
'''
set range data from a tuple
'''
if type( data ) == types.TupleType:
bottomRow = topRow + len(data) - 1
rightCol = leftCol + len(data[0]) - 1
length = len(data)
else:
bottomRow = topRow
rightCol = leftCol
length = 1
sht = self.xBook.Worksheets(sheet)
if( length > MaxAccept):
times = length/MaxAccept;
i = 0;
# Multiple * MaxAccept data
while( i < times ):
sht.Range(
sht.Cells (topRow + i*MaxAccept, leftCol),
sht.Cells(topRow + (i+1)*MaxAccept - 1, rightCol)
).Value = data[i*MaxAccept: (i+1)*MaxAccept]
i += 1
# additional data besides Multiple MaxAccept
sht.Range(
sht.Cells(topRow + times * MaxAccept, leftCol),
sht.Cells(bottomRow, rightCol)
).Value = data[times * MaxAccept:]
else:
sht.Range(
sht.Cells(topRow, leftCol),
sht.Cells(bottomRow, rightCol)
).Value = data
# rename a work sheet
def setSheetName(self, sheet, name):
'''
Rename a sheet
'''
sht = self.xBook.Worksheets(sheet)
#logging
print "Rename sheet %s to %s" % ( sheet , name )
sht.Name = name