#!phthon
#-*- coding:GBK -*-
# filename:Html.py
__PageTemplate__ = """<html><meta http-equiv="Content-Type" content="text/html; charset=GBK">
<head><title> $title </title></head>
<style>
.titleStyle {
font-size: 10pt;
font-family: Arial, Helvetica, sans-serif, Geneva
}
.sheetStyle, .accountsub, .usersum, .confdetail {
font-size: 8pt;
font-family: 新宋体, Arial, Helvetica, sans-serif, Geneva
}
.grayStyle {
font-size: 8pt;
font-family: 新宋体, Arial, Helvetica, sans-serif, Geneva;
background-color: #D8D8D8
}
.bluesStyle, .userdetail {
font-size: 8pt;
font-family: 新宋体, Arial, Helvetica, sans-serif, Geneva;
color: #FFFFF0; background-color: #4040FF
}
</style>
<body>
$content
</body></html>"""
def _attr(attr = {}):
return (attr) and '' or /
''.join([' %s="%s"' % (k,v) for k,v in attr.items()])
def _th(content, attr={}):
return "<TH%s>%s</TH>" % (_attr(attr),content)
def _td(content, attr={}):
return "<TD%s>%s</TD>" % (_attr(attr),content)
def _td_c(content, attr={}):
attr['align']='center'
return _td(content, attr)
def _td_l(content, attr={}):
attr['align']='left'
return _td(content, attr)
def _td_r(content, attr={}):
attr['align']='right'
return _td(content, attr)
def _td_money(mny, attr={}):
attr['align']='right'
return _td("%.2f" % mny, attr)
def _tr(cells=[], attr={}):
return "<TR%s>%s</TR>" % (_attr(attr), ''.join(cells))
def _tb(rows=[]):
return "<TBODY>%s</TBODY>" % '/n'.join(rows)
def _table(tableInfos={}):
attrib = ('attrib' in tableInfos and tableInfos['attrib'] > '') /
and tableInfos['attrib'] or ''
caption = ('caption' in tableInfos and tableInfos['caption'] > '') /
and "<CAPTION>%s</CAPTION>" % (tableInfos['caption']) or ''
rows = ('rows' in tableInfos and tableInfos['rows'] > '') /
and tableInfos['rows'] or ''
return "<TABLE%s>%s%s</TABLE>" % (attrib, caption, rows)
class Table:
def __init__(self):
self.attrib = {}
self.caption = ''
self.headColumns = []
self.columnAttrs = []
self.columns = []
self.data = []
def setColumns(self,columns):
self.columns = columns
def setColumnsHeader(self,columnsHeader):
for i in range(len(columnsHeader)):
self.columns['Header'] = columnsHeader
def setColumnsAttrib(self,columnsAttrib):
for i in range(len(columnsAttrib)):
self.columns['Attrib'] = columnsAttrib
def setColumnsDtDict(self,columnsDtDict):
for i in range(len(columnsDtDict)):
self.columns['DtDict'] = columnsDtDict
def toString(self):
caption = (self.caption == '') /
and '' /
or ("<CAPTION>%s</CAPTION>" % self.caption)
headers = (len(self.columns) == 0) /
and '' /
or ("<THEAD>%s</THEAD>" % _tr(
''.join([_th(column['Header']) for column in self.columns])))
trs = []
for row in self.data:
trrs = []
m = map(None, row, self.columns)
for item in m:
if (item[1]):
if ('DtDict' in item[1] and
item[0] in item[1]['DtDict']):
cell = item[1]['DtDict'][item[0]]
else:
cell = item[0]
attr = ('Attrib' in item[1]) and item[1]['Attrib'] or {}
trrs.append(_td(cell, attr))
trs.append(_tr(trrs))
tbody = _tb(trs)
return "<TABLE%s>%s/n%s/n%s</TABLE>" % (
_attr(self.attrib),
caption,
headers,
tbody)
Html.py
最新推荐文章于 2024-05-21 10:01:30 发布