python中的人性化excel创建
hfexcel的Python项目详细描述
hfexcel 0.0.17
python中的人性化excel创建
依赖项的开发版本
- python 3.x
- xlsxwriter==1.1.8
- jsonschema==2.6.0
- pytest
- codecov
- pytest cov
安装
pip install hfexcel
功能
- 人类可读编码,建筑
- 基于对象定向的可读模型:
HFExcelWorkbook
,HFExcelSheet
,HFExcelColumn
,HFExcelColumn
HFExcelWorkbookFilter
:使用预定义的json模式从json数据(pythondict
)填充excel的助手类。(默认值:hfexcel.schemas.DEFAULT_SCHEMA
)HFExcelWorkbook.output
:在输入为空的filename (string)
上创建输出,并使用链接到工作簿本身的类型BytesIO
创建了output
参数
游乐场
将json格式输入的嵌套对象{sheet>;column>;row}转换为excel格式的示例
fromhfexcelimportHFExcelfromhfexcel.schemasimportDEFAULT_SCHEMAexcel_data={"sheets":[{"key":"sheet1","name":"Example Sheet 1","columns":[{"name":"Column 1","width":2,"args":["headline"],"rows":[{"data":"Column 1 Row 1"},{"data":"Column 1 Row 2"}]},{"name":"Column 2","rows":[{"data":"Column 2 Row 1",},{"data":"Column 2 Row 2",}]},{"name":"Column 3","rows":[{"data":"Column 3 Row 1"},{"data":"Column 3 Row 2"}]}]}],"styles":[{"name":"headline","style":{"bold":1,"font_size":14,"font":"Arial","align":"center"}}]}hf_workbook=HFExcel.hf_workbook('example.xlsx',set_default_styles=False)hf_workbook.filter().populate_with_json(excel_data,schema=DEFAULT_SCHEMA)hf_workbook.save()
面向对象的python语法示例
fromhfexcelimportHFExcelhf_workbook=HFExcel.hf_workbook('example.xlsx',set_default_styles=False)hf_workbook.add_style("headline",{"bold":1,"font_size":14,"font":"Arial","align":"center"})sheet1=hf_workbook.add_sheet("sheet1",name="Example Sheet 1")column1,_=sheet1.add_column('headline',name='Column 1',width=2)column1.add_row(data='Column 1 Row 1')column1.add_row(data='Column 1 Row 2')column2,_=sheet1.add_column(name='Column 2')column2.add_row(data='Column 2 Row 1')column2.add_row(data='Column 2 Row 2')column3,_=sheet1.add_column(name='Column 3')column3.add_row(data='Column 3 Row 1')column3.add_row(data='Column 3 Row 2')# In order to get a row with coordinates:# sheet[column_index][row_index] => rowprint(sheet1[1][1].data)assert(sheet1[1][1].data=='Column 2 Row 2')hf_workbook.save()
将基于内联索引的{sheet>;[column:row]}输入从json格式转换为excel格式的示例
fromhfexcelimportHFExcelfromhfexcel.extrasimportInlineInputHelperexcel_data={"sheets":[{"key":"sheet1","name":"Example Sheet 1","columns":[{"name":"Column 1","width":2,"args":["headline"]},{"name":"Column 2"}],"rows":[[{"data":"Column 1 Row 1"},{"data":"Column 2 Row 1"}],[{"data":"Column 1 Row 2"},{"data":"Column 2 Row 2"}]]}],"styles":[{"name":"headline","style":{"bold":1,"font_size":14,"font":"Arial","align":"center"}}]}hf_workbook=HFExcel.hf_workbook(filename,set_default_styles=False)InlineInputHelper(hf_workbook).populate_with_json(excel_data)hf_workbook.save()returnTrue
示例输出文件
贡献者
- @ebsaral-作者
- 请随意贡献
依赖关系
- @jmcnamara:基于xlsxwriterhttps://github.com/jmcnamara/XlsxWriter(在编写excel文档时具有可读的面向对象设计)
- @julian:json模式验证,json schemahttps://github.com/Julian/jsonschema
警告
- 编写了快乐路径测试