首页 > 其他分享 >还在担心报表不好做?不用怕,试试这个方法(五)

还在担心报表不好做?不用怕,试试这个方法(五)

时间:2024-08-28 09:25:26浏览次数:10  
标签:报表 试试 不用 GcExcel Workbook 设置 workbook 全局 模板

前言

在上一篇文章《GcExcel 模板系列教程四-分组与扩展》中,小编为大家分享了如何使用 GcExcel 实现模板的分组与扩展,本文小编将为大家主要介绍如何在模板中进行全局设置。

GcExcel 模板中的全局设置是针对整个模板定义的设置。当需要在多个字段上应用相同属性时,全局设置能够极大地简化工作量。这些设置可以应用于所有模板布局,甚至可以涵盖工作簿中的多个工作表。

GcExcel

GcExcel 模板提供的全局设置说明如下:

  • KeepLineSize(保持行高与列宽)
  • InsertMode(插入整行或整列)
  • DebugMode(调试模式)
  • PaginationMode(分页模式)
  • EmbedFontForFormFields(嵌入字体文件)

本节小编将主要介绍前三个设置,对于其他的模式您可以参考 GcExcel 的官方文档了解更多全局设置的细节。

配置方法

全局设置,是通过 Excel 的公式名称管理器来配置的。需要注意的是,全局设置需要在模板填充之前配置,才可生效,可以使用如下的代码进行全局配置:

Workbook wb = new Workbook();
wb.open("template.xlsx");
//配置全局设置
wb.getNames().add("TemplateOptions.KeepLineSize", "true");
//配置数据源, ds 对象需要额外配置
wb.addDataSource("ds", ds);
//模板填充
wb.processTemplate();
//保存报表
wb.save("report.pdf");

除了使用代码设置之外,也可以通过 Excel 或者 SpreadJS,在模板中直接配置全局配置,这样就无需再在代码中显示设置了。

Excel:

SpreadJS:

全局设置

1. 保持行高与列宽(KeepLineSize)

通常情况下,GcExcel 在扩展单元格时不会改变单元格的行高和列宽,而是直接沿用已有单元格的行高和列宽,如下图所示:

导出后,可以看到,只有第一行的高度比较大,其余的新行高度并未修改,与模板中原有行高保持一致。

但往往为了布局整齐,美观,我们期望的结果应该是下面的这个样子:

这个时候我们就可以使用 KeepLineSize 属性,修改新增行列时,保持行高列宽一致。

使用如下代码实现:

Workbook workbook = new Workbook();
workbook.open("template.xlsx");
workbook.getNames().add("TemplateOptions.KeepLineSize","True");
workbook.addDataSource("ds",CreateData2());
workbook.processTemplate();

除了使用代码之外,还可以使用名称管理器,在模板中预先配置好:

2. 插入整行或整列(InsertMode)

GcExcel 在扩展单元格时,为了尽量避免对模板布局的影响,默认是以插入单元格的方式进行扩展,如下图所示:

然而,有时在实际情景中,这种操作可能会破坏布局,就像上图中绿色行单元格被切割一样。这种情况下,我们可以通过使用 InsertMode 属性来修改插入行为,让 GcExcel 在填充模板时按照行的方式进行插入:

Workbook workbook = new Workbook();
workbook.open("template.xlsx");
workbook.getNames().add("TemplateOptions.InsertMode","EntireRowColumn");
workbook.addDataSource("ds",CreateData());
workbook.processTemplate();

除了使用代码之外,也可以使用名称管理器,添加设置:

3. 调试模式(DebugMode)

调试模式,是为了方便对比模板与结果而设计的一种模式,当开启 DebugMode 后,模板填充时会保留模板工作表,并将名字改为 {sheetname}_template,例如原本工作表名字为 sales,则模板工作表为 sales_template。

如下图所示:

模板

报表

与前面的设置相同,您可以通过代码或者名称管理器来开启调试模式。

Workbook workbook = new Workbook();
workbook.open("template.xlsx");
workbook.getNames().add("TemplateOptions.DebugMode","True");
workbook.addDataSource("ds",CreateData());
workbook.processTemplate();

总结

GcExcel 的全局设置旨在有效解决不同工作表或模板中共享的配置问题。不同的配置方式各有其优势。通过代码配置,可以避免关注模板本身是否设置了全局属性,而使用名称管理器配置则更好地实现代码与模板的解耦,提高代码的可维护性和灵活性。这种灵活的配置方法为处理全局设置提供了多种选择,使得在不同需求下能够更好地应用和管理全局设置。

扩展链接:

轻松构建低代码工作流程:简化繁琐任务的利器

数据驱动创新:以Java编程方式定制数据透视表

Java批量操作Excel文件实践

标签:报表,试试,不用,GcExcel,Workbook,设置,workbook,全局,模板
From: https://www.cnblogs.com/powertoolsteam/p/18383973

相关文章

  • 一张报表完成工厂生产综合数据分析,用这款免费报表工具就够了
    在当今快节奏的工业环境中,工厂管理者们越来越依赖于数据分析来优化生产流程、提高效率和降低成本。然而,传统的数据分析工具往往复杂难用,且动辄需要高昂的费用,这让很多工厂望而却步。不过最近本人发现了一款非常实用的报表工具,叫作山海鲸可视化(官网:shanhaibi.com/report),能让你在一......
  • 深度剖析:医疗行业财务报表的核心要素与解析策略
    在当今医疗行业中,财务报表分析扮演着至关重要的角色。医疗机构需要通过对财务数据的准确分析来做出关键决策,管理资源,改善效率,并确保最终提供高质量的医疗服务。本文将深入探讨医疗行业中财务报表分析的重要性、关键指标和分析方法,帮助大家更好地理解和了解财务报表在医疗行业中......
  • JimuReport 积木报表 v1.8.0 版本发布,开源可视化报表
    项目介绍一款免费的数据可视化报表工具,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!Web版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。秉承"简单、易用、专业"的产品理念,极大的降低报表开发难度、缩短开发周......
  • U 盘数据丢失不用怕!这些恢复方法超有效!
    U盘数据怎么恢复?在如今的数字化生活中,U盘就像是我们的随身数据宝库,装满了各种珍贵的资料和回忆。但有时,一个不小心,可能就会让这个宝库出现“漏洞”,数据丢失的情况让人瞬间陷入焦虑。就像前段时间,小李在整理U盘文件时,误删了一份马上要用的重要报告,急得像热锅上的蚂蚁。那到......
  • 不用再找了,吐血整理 ChatGPT 3.5/4.0 新手使用手册~ 【2024年8月 亲测好用】
    现在人工智能很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同、情感陪伴等,真是无所不能~本来以为ChatGPT早已普及了,没想到仍然有很多小伙伴还没用上。。。其实使用很简单,可以选通义、智谱、Deepseek等“83分”的国产大模型~国产大模型,平均80分左右~也可选国内的......
  • 不用再找了,吐血整理 ChatGPT 3.5/4.0 新手使用手册~ 【2024年9月 亲测好用】
    现在人工智能很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同、情感陪伴等,真是无所不能~本来以为ChatGPT早已普及了,没想到仍然有很多小伙伴还没用上。。。其实使用很简单,可以选通义、智谱、Deepseek等“83分”的国产大模型~国产大模型,平均80分左右~也可选国内的......
  • OracleERP云报表设计与开发教程
    OracleERP云报表设计与开发教程OracleERP云环境搭建创建OracleERP云实例在开始OracleERPCloud的二次开发之前,首先需要创建一个OracleERPCloud实例。这通常在OracleCloudInfrastructure(OCI)平台上进行,OCI提供了创建、管理和扩展云服务的全面环境。步骤1:登录OCI......
  • 十大免费的Python爬虫APP!再也不用开那么多会员了!
      在探讨十大网络爬虫免费App时,需要注意的是,并非所有提到的工具都完全免费或以App形式存在。不过,我可以根据当前可用的信息和市场情况,列出一些广受欢迎且部分功能可能免费的网络爬虫工具或软件,尽管其中一些可能主要是桌面应用或框架。以下是按照您的要求整理的列表:1.八爪......
  • 报表系统之Redash
    Redash是一个开源的数据可视化和仪表板工具,旨在帮助用户轻松地从多个数据源中提取、查询、可视化数据,并分享结果。它的设计目标是让数据分析变得更加便捷,即使是非技术用户也能通过简单的操作生成复杂的数据报告和仪表板。核心概念和功能查询编辑器:Redash提供了一个功能强......
  • 你每天的销售数据日报需要多少时间处理?如果有办法能30秒出报表,你怎么选?
    每天的销量数据的获取对于品牌连锁企业来说,是商品管理部门、营运部门同事或者企业领导每天早上的必做事情之一。因此,对于如何准确,快速,低代价的获取销量信息,是一门艺术。据观察了解,目前来说各企业获取每日销量数据的方式参差不齐,大致来说主要分为两类:①、每日销量由各门店手工......