- , , xls -.
, xlswriter, Facade, , , xlswriter .
import xlsxwriter
class ExcelWriter(object):
def getColFormatInfo(self, fieldname):
f = FieldFormat.factory(self.rdb, fieldname)
label = f.SHORTNAME
width = max(f.LENGTH, len(label))
return width, label
def __init__(self, rdb, title):
self.rdb = rdb
self.fnp = "/tmp/%s.xlsx" % (title)
wb = self.workbook = xlsxwriter.Workbook(self.fnp)
self.fmt_title = wb.add_format(dict(bold=True))
self.fmt_title.set_bg_color("#F5F5F5")
self.fmt_title.set_border(1)
self.fmt_colheader = wb.add_format(dict(bold=True))
self.fmt_colheader.set_bottom(2)
self.fmt_link = wb.add_format({'color': 'blue', 'underline': 1})
def add_worksheet(self, wsname):
return self.workbook.add_worksheet(wsname)
def write_title(self, ws, row, col, s):
ws.write(row, col, s, self.fmt_title)
def write_colheader(self, ws, row, col, s):
ws.write(row, col, s, self.fmt_colheader)
def write(self, ws, row, col, s):
ws.write(row, col, s)
def write_url(self, ws, row, col, url, s):
ws.write_url(row, col, url, self.fmt_link, s)
, , xls , write_colheader.
xlswriter .
, , . , , put xyz 1,13. html- - django-tables2 html, .
, , , -, , , ExcelWriter, - , ExcelWriter API.
, , , , , # F5F5F5 Json , ExcelWriter :
- :
self.fmt_title.set_bg_color(
self.j_config.get("fmt_title",{}).get("bg_color", "F5F5F5")
)
OPs , defs .
def add_worksheet(self, wsname):
ws = self.current_ws = self.workbook.add_worksheet(wsname)
return ws
def write_url(self, row, col, url, s, ws=None, fmt=None):
ws = ws or self.current_ws
fmt = fmt or self.fmt_link
ws.write_url(row, col, url, fmt, s)