对一块区域赋值,并自动增加行
注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。
假如在逐行填充数据库数据到Excel模板中时,模板中表格的待填充数据的单元格区域行数不足,那就不要采用openCell方法去逐个填充单元格赋值,而是把整个待填充数据的单元格区域作为一个Table去操作,每填充一行数据,就调用Table的nextRow方法,如此一来,假如待填充数据行数超过Excel中单元格区域的行数时,PageOffice会在Table的末尾自动插入行,直到所有数据都填充完毕。
比如模板test.xlsx中的表格只有10行数据行,调用PageOffice打开此文件,并动态填充50行数据。
后端代码
在后端编写代码调用webOpen方法打开文件,并创建Table对象填充数据。
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
Workbook wb = new Workbook();
Sheet sheet = wb.openSheet("Sheet1");
Table table = sheet.openTable("B4:F13");//打开"B4:F13"区域为一个Table对象
for (int i = 0; i < 50; i++) {
table.getDataFields().get(0).setValue("产品 " + i);
table.getDataFields().get(1).setValue("100");
table.getDataFields().get(2).setValue(String.valueOf(100 + i));
table.nextRow();
}
table.close();
poCtrl.setWriter(wb); //必须。
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
//查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
poCtrl.webOpen("D:\documents\test.xlsx", OpenModeType.xlsNormalEdit, "张三");
标签:填充,单元格,excel,区域,PageOfficeV6.0,Table,table,赋值
From: https://www.cnblogs.com/lhl77/p/17805223.html