Python开发-实现Excel套打打印

1、目的html

目前本人就任与甲方的工做,因为公司的ERP比较烂没法完美的设计套打,就想着本身用Python开发一个套打工具。app

2、开发过程工具

刚开始我打算用Html的方式生成打印的文档,可是有两个没法解决的问题。性能

一、Chrome对html的最小字号锁定了8号,须要写缩放。测试

二、HTML的设计只有开发才能完成,会把工做留在本身部门。字体

最后锁定了仍是EXCEL作个套打的模板,根据EXCEL来生成须要打印的EXCEL。spa

3、实现的功能设计

一、模板Sheet页中全部格式完美的打印。excel

包括行高、列高、合并单元格、填充色、字体、字体的样式code

实现效果

模板

 打印效果

 

 

 

二、支持多个Sheet数据的打印。

三、支持明细表的打印。

控制每一个Sheet打印的明细表行数,若是超出可打印行,输出到另外的Sheet、SheetName是SheetName_N。

四、基于性能关系,用xlrd,xlwt进行Excel的操做,因此不支持excel07以上的版本。

五、因为Excel07如下的版本每一个文件只支持255个Sheet,基于性能考虑每一个Excel文件只存放100个Sheet。超过100个Sheet,输出到另一个Excel文件。

4、代码实现

一、安装c_excel_template库

须要源码的能够下载了看

pip install c_excel_template

二、测试的数据

  

from c_excel_template import Excel_Template #模板的文件
template_file="example.xls"
#模板文件的Sheet名
template_sheet="example" test=Excel_Template(template_file,template_sheet) #保存的文件名
save_name="test3.xls"
#开始输出
test.print_excel_with_template(save_name=save_name,print_data=print_data)

 打印数听说明

# test:sheetname test2-主表的变量 test1-主表变量 d1明细表名
print_data={"test":{'test2':"ddd", 'test1': "BBB","d1":[]}} #明细表"d1"的值以list方式输出 [{"orderno":"A1","sales":"B1"}]
for i in range(1,120): print_data["d1"].append({"orderno":f"A{i}","sales":f"B{i}"})

EXCEL打印模板的设计

主表的变量:$变量$

明细表的变量:$明细表名.明细表字段名$

明细表开始行标记:$明细表名.start_id$

明细表结束行标记:$明细表名.end_id$

相关文章
相关标签/搜索