SpreadScript Python Example
This is a simple Python script using SpreadScript to change and print the contents of
an Excel spreadsheet in order to demonstrate some of the features available in
SpreadScript. The most recent version of this script is included in the
distribution in the "samples" directory.
NOTE
import spreadscript
import os
if (os.environ.has_key("SPREADSCRIPT_LICENSE")):
SPREADSCRIPT_LICENSE = os.environ["SPREADSCRIPT_LICENSE"]
else:
SPREADSCRIPT_LICENSE = "/opt/SpreadScript/SpreadScript-license.txt"
def dumpCell(sheet, row, col):
type = sheet.getType(row, col) value = sheet.getText(row, col) typeString = spreadscript.getTypeString(type) print "%d, %d: %s -- %s" % (row, col, value, typeString), if type == spreadscript.SS_FORMULA_CELL: print " <%s>" % (sheet.getFormula(row, col)) else:
print
def dumpSheet1(sheet):
dims = sheet.getDimensions()
print "******* dump sheet: %s ********" % (sheet.getName())
for col in range(dims.getMinColumn(), 1 + dims.getMaxColumn()):
for row in range(dims.getMinRow(), 1 + dims.getMaxRow()):
dumpCell(sheet, row, col)
def dumpSheet2(sheet):
print "******* dump sheet 2 ********"
dims = sheet.getDimensions()
lastRow = dims.getMaxRow()
firstCol = dims.getMinColumn()
lastCol = dims.getMaxColumn()
col = firstCol
while col <= lastCol:
row = dims.getMinRow()
while row <= lastRow:
dumpCell(sheet, row, col)
row = row + 1
col = col + 1
if __name__ == "__main__":
spreadscript.init(SPREADSCRIPT_LICENSE)
book = spreadscript.Workbook() book.activate() book.open("sample.xls")
sheet = book.getSheet(1)
sheet.setFormula(3, 2, "=min(a1..a3)") sheet.recalc()
sheet.setDefaultFormat(spreadscript.SS_FMT_FIXED)
sheet.setDefaultPlaces(1) dumpSheet1(sheet)
sheet.setDefaultFormat(spreadscript.SS_FMT_FLOAT)
sheet.setDefaultPlaces(3) dumpSheet1(sheet)
sheet.setBorder(2, 2, spreadscript.Border(spreadscript.SS_BORDER_THIN,
spreadscript.SS_BORDER_MEDIUM,
spreadscript.SS_BORDER_DASHED,
spreadscript.SS_BORDER_DOTTED));
book.save("sample_out.xs3", spreadscript.SS_NEXS_XS3) book.save("sample_out.xls", spreadscript.SS_EXCEL_95)
r = spreadscript.Range(sheet, 1, 1, 3, 3)
r.exportHTML("sample_out.html")
book = spreadscript.Workbook() book.activate()
sheet = book.createSheet("The Sheet") for i in range(5, 15):
sheet.setNumber(i, 1, 2 * i)
dumpSheet1(sheet)
del book
print "Done!"