学习DsExcel的科学实践之模板导出(三)
DsExcel
admin 发布于:2025-07-18 11:04:52
阅读:loading
DsExcel是一款高速 Java Excel 电子表格 API 库,终极 Java Excel 电子表格 API 库解决方案。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
高速 Java Excel 电子表格 API 库
(1)创建、加载、编辑和保存 Excel .xlsx 电子表格;
(2)保存至 XLSX,PDF,HTML,CSV,JSON,图片, 和SpreadJS文件;
(3)比 Apache POI 快 2 倍以上,占用内存更少;
(4)不依赖 Microsoft Excel;
(5)包含 JavaScript 数据查看器在客户端上查看数据文档并选择性地与其交互;
Java Excel API 库概述
Java 版 Excel 文档解决方案允许开发人员大规模加载、创建、修改、计算、保存和转换 Excel 电子表格。它支持读写 .XLSX 文件、使用自定义模板创建和共享报告,以及在 8.0 及以上版本的 Java 应用程序中部署电子表格。
终极 Java Excel 电子表格 API 库解决方案
用于无缝电子表格管理的高级 API 功能:这个功能丰富的 API 基于强大的 Excel 对象模型,支持使用 Java 无缝创建、编辑、转换和导出 Excel 文件。它支持企业应用程序的公式、图表、数据透视表、数据验证、样式设置和高性能处理。
使用 Java 中的 .XLSX 模板构建专业的 Excel 报告:使用 Java 定义 Excel 模板,自动快速生成全面的 .xlsx 报表,例如发票、销售报告、收据、运输标签、采购订单等。绑定来自多个数据源的数据,使用图表模板、迷你图和表格创建报表,同时还支持 Microsoft Excel 公式进行快速数据计算和条件格式设置。
跨平台 Java 开发:一次编写,随处运行:凭借对 Windows、Linux 和 macOS 的全面支持,您可以使用单一 Java 代码库创建与 Excel 兼容的电子表格应用程序。Excel 文档解决方案 Java 版可在桌面和 Web 应用中无缝运行,无需依赖 Microsoft Excel。您可以使用 Java 创建、加载、编辑、计算和导出电子表格,并部署到本地或云端,兼容 Azure、AWS 和 AWS Lambda 等平台。
Java Excel API 功能
(1)生成Excel文件;
(2)导入/导出功能;
(3)数据可视化功能;
(4)数据分析;
(5)强大的计算引擎;
(6)单元级特征;
(7)高级功能;
Java操作Excel的库已知(或多或少的接触过)相当多的组件了,有商业的,也有免费的,它们是:Jacob、JXL、JXLS、POI、EasyPOI、EasyExcel、Aspose、Spire.Xls、Qoppa Software等等,今天这款DsExcel也是相当的强大,作为Java操作Excel的实现之一,在酌情了解它的特性后,按需有效选择即可。Apache POI已经够强大了,足够使用,而且开源免费,首选。
@RunWith(JUnit4.class)
public class ExcelTemplateTest {
@Before
public void before() {
DsExcelRegister.register8_1_4();
}
@Test
public void test() {
// Create a new workbook
Workbook workbook = new Workbook();
//Load template file from resource
workbook.open("resources/input/Hello_Template.xlsx");
///#region Init Data
List<PurchaseOrderInfo> purchaseOrderInfoList = new ArrayList<PurchaseOrderInfo>();
PurchaseOrderInfo purchaseOrderInfo1 = new PurchaseOrderInfo();
purchaseOrderInfo1.s_no = 1;
purchaseOrderInfo1.itemnumber = "P1001";
purchaseOrderInfo1.itemdescription = "Pencils HB";
purchaseOrderInfo1.quantity = 5;
purchaseOrderInfo1.um = "dozen";
purchaseOrderInfo1.price = 10;
purchaseOrderInfoList.add(purchaseOrderInfo1);
PurchaseOrderInfo purchaseOrderInfo2 = new PurchaseOrderInfo();
purchaseOrderInfo2.s_no = 2;
purchaseOrderInfo2.itemnumber = "P1003";
purchaseOrderInfo2.itemdescription = "Pencils 2B";
purchaseOrderInfo2.quantity = 4;
purchaseOrderInfo2.um = "dozen";
purchaseOrderInfo2.price = 10;
purchaseOrderInfoList.add(purchaseOrderInfo2);
PurchaseOrderInfo purchaseOrderInfo3 = new PurchaseOrderInfo();
purchaseOrderInfo3.s_no = 3;
purchaseOrderInfo3.itemnumber = "P1003";
purchaseOrderInfo3.itemdescription = "Paper A4 - Photo Copier";
purchaseOrderInfo3.quantity = 10;
purchaseOrderInfo3.um = "ream";
purchaseOrderInfo3.price = 3;
purchaseOrderInfoList.add(purchaseOrderInfo3);
PurchaseOrderInfo purchaseOrderInfo4 = new PurchaseOrderInfo();
purchaseOrderInfo4.s_no = 4;
purchaseOrderInfo4.itemnumber = "P1234";
purchaseOrderInfo4.itemdescription = "Pens - Ball point";
purchaseOrderInfo4.quantity = 15;
purchaseOrderInfo4.um = "boxes";
purchaseOrderInfo4.price = 2;
purchaseOrderInfoList.add(purchaseOrderInfo4);
PurchaseOrderInfo purchaseOrderInfo5 = new PurchaseOrderInfo();
purchaseOrderInfo5.s_no = 5;
purchaseOrderInfo5.itemnumber = "P3221";
purchaseOrderInfo5.itemdescription = "Highligter";
purchaseOrderInfo5.quantity = 8;
purchaseOrderInfo5.um = "sets";
purchaseOrderInfo5.price = 10;
purchaseOrderInfoList.add(purchaseOrderInfo5);
PurchaseOrderBasicInfo orderbasicInfo = new PurchaseOrderBasicInfo();
orderbasicInfo.iD = "US120499";
orderbasicInfo.orderDate = new GregorianCalendar(2019, 7, 7).getTime();
orderbasicInfo.creditTerms = "30";
orderbasicInfo.pONumber = "PO1011";
orderbasicInfo.ref = "QT1231";
orderbasicInfo.deliverToCompany = "Sanfort Pvt. Ltd.";
orderbasicInfo.deliverToAddress = "1322, High Street, Geln Waverlay";
orderbasicInfo.postalCode = "Victoria 3456";
orderbasicInfo.country = "Australia";
//Add data source
workbook.addDataSource("po", purchaseOrderInfoList);
workbook.addDataSource("tax", 5);
workbook.addDataSource("ds", orderbasicInfo);
//Invoke to process the template
workbook.processTemplate();
// Save to an excel file
workbook.save("resources/output/Hello_Template.xlsx");
}
//省略两个属性类
}
(1)示例使用了DsExcel的8.1.4版本,演示了基于模板Hello_Template.xlsx文件来导出Excel的实现,拷贝来源于官网的示例;
(2)演示了基于模板生成Xlsx格式文件,涉及到表格、单元格、图片、单元格样式,等;
(模板文件)
(模板导出)
(1)DsExcel是mescius公司出的众多产品中的其中一款Java语言的产品,目前只知道这款Java语言产品,属于商业产品;
(2)关于Jar文件的下载可以直接从Maven中央仓库下载,下载到的Jar文件内有许多class属于加密混淆的;
(3)使用试用版本将会有对应的试用提示信息与版本限制,比如:文档水印、API最大限制调用100次、程序所在的进程限制10小时内访问有效,本系列文章中的实现属于的科学使用,不需额外关注License,又不改动Jar的任何地方,同时又恰好没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(4)官网的产品组件页面给出了大量的示例代码,至于更多的API示例实现,不作为本次学习摸索的重点,如果未科学使用则会有一些限制;
(5)截至目前(2025年7月)最新的版本为8.1.4,科学的实践只验证了与8.1.3这两个版本;
(6)相关示例输出文件下载:《示例输出.zip》;
点赞