def _get_header_styles(self): s1 = XFStyle() al = Alignment() al.horz = Alignment.HORZ_CENTER s1.alignment = al s2 = XFStyle() borders = Borders() borders.bottom = 2 s2.borders = borders return s1, s2
def _get_header_style(self): # s1 = self._style_factory() al = Alignment() al.horz = Alignment.HORZ_CENTER # s1.alignment = al s2 = self._style_factory() borders = Borders() borders.bottom = 2 s2.borders = borders s2.alignment = al return s2
def add_ideogram_table(self, analyses, widths=None, # configure_table=True, add_title=False, add_header=False, tablenum=1, **kw): sh = self._wb.add_sheet(analyses[0].labnumber) # 'sheet{:02n}'.format(self._sheet_count)) self._sheet_count += 1 cols = ['Status', 'N', 'Power', 'Moles_40Ar', 'Ar40', 'Ar40Er', 'Ar39', 'Ar39Er', 'Ar38', 'Ar38Er', 'Ar37', 'Ar37Er', 'Ar36', 'Ar36Er', 'Blank', 'Ar40', 'Ar40Er', 'Ar39', 'Ar39Er', 'Ar38', 'Ar38Er', 'Ar37', 'Ar37Er', 'Ar36', 'Ar36Er' ] # write header row hrow = 0 borders = Borders() borders.bottom = 2 style = XFStyle() style.borders = borders for i, ci in enumerate(cols): sh.write(hrow, i, ci, style=style) numstyle = XFStyle() numstyle.num_format_str = '0.00' from operator import attrgetter def getnominal_value(attr): def get(x): v = getattr(x, attr) return float(v.nominal_value) return get def getstd_dev(attr): def get(x): v = getattr(x, attr) return float(v.std_dev) return get def getfloat(attr): def get(x): v = getattr(x, attr) return float(v) return get def null_value(): return lambda x: '' attrs = [(attrgetter('step'),), (getfloat('extract_value'),), (null_value(),), (getnominal_value('Ar40'),), (getstd_dev('Ar40'),), (getnominal_value('Ar39'),), (getstd_dev('Ar39'),), (getnominal_value('Ar38'),), (getstd_dev('Ar38'),), (getnominal_value('Ar37'),), (getstd_dev('Ar37'),), (getnominal_value('Ar36'),), (getstd_dev('Ar36'),), (null_value(),), (getnominal_value('Ar40_blank'),), (getstd_dev('Ar40_blank'),), (getnominal_value('Ar39_blank'),), (getstd_dev('Ar39_blank'),), (getnominal_value('Ar38_blank'),), (getstd_dev('Ar38_blank'),), (getnominal_value('Ar37_blank'),), (getstd_dev('Ar37_blank'),), (getnominal_value('Ar36_blank'),), (getstd_dev('Ar36_blank'),), ] for i, ai in enumerate(analyses): for j, arg in enumerate(attrs): if len(arg) == 2: func, style = arg else: func, style = arg[0], Style.default_style sh.write(i + hrow + 1, 1 + j, func(ai), style )
# -*- coding: utf-8 -*- from xlwt.Formatting import Borders, Font, Alignment, Pattern from xlwt.Style import XFStyle from xlwt.Workbook import Workbook wb = Workbook('utf-8') sheet = wb.add_sheet('测试报告') title = ['编号', '姓名', '职业', '上级', '入职日期'] title_style = XFStyle() border = Borders() border.left = border.THIN border.right = border.THIN border.top = border.THIN border.bottom = border.THIN font = Font() font.bold = True alignment = Alignment() alignment.horz = alignment.HORZ_CENTER pattern = Pattern() pattern.pattern = pattern.SOLID_PATTERN pattern.pattern_fore_colour = 0x35 title_style.borders = border title_style.font = font title_style.alignment = alignment title_style.pattern = pattern