2023年11月28日发(作者:)
Java实现给Excel模板赋值(直接打开表格赋值或者⽤⾃定义
了名称的单元格(⼀块区域)赋。。。
1:需求
直接打开表格填充数据到模板后的效果可能出现表格重叠的问题
⽤⾃定义名称填充数据到模板后表格互不影响
Excel⾃⾝有⼀个“定义名称”的功能,
最终所有的⾃定义名称
<%@page import=".*"%>
<%
//设置PageOfficeCtrl控件的服务页⾯
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
verPage(textPath()+"/"); //此⾏必须
tion("简单的给Excel赋值");
//定义Workbook对象
Workbook workBook = new Workbook();
//定义Sheet对象,"Sheet1"是打开的Excel表单的名称
Sheet sheet = eet("Sheet1");
llByDefinedName("testA1").setValue("testA1");
llByDefinedName("testB1").setValue("testB1");
//定义Table对象,参数“report1”为Excel中定义的名称,“4”为名称指定区域的⾏数,
//“5”为名称指定区域的列数,“true”表⽰表格会按实际数据⾏数⾃动扩展
Table table = bleByDefinedName("report", 4, 5, true);
int rowCount = 12;//假设将要⾃动填充数据的实际记录条数为12
for(int i = 1; i <= rowCount; i++){
//给区域中的单元格赋值
aFields().get(0).setValue( i + "⽉");
aFields().get(1).setValue("100");
aFields().get(2).setValue("120");
aFields().get(3).setValue("500");
aFields().get(4).setValue("120%");
w();//循环下⼀⾏,此⾏必须
}
//关闭table对象
();
//定义Table对象
Table table2 = bleByDefinedName("report2", 4, 5, true);
int rowCount2 = 4;//假设将要⾃动填充数据的实际记录条数为12
for(int i = 1; i <= rowCount2; i++){
//给区域中的单元格赋值
aFields().get(0).setValue( i + "季度");
aFields().get(1).setValue("300");
aFields().get(2).setValue("300");
aFields().get(3).setValue("300");
aFields().get(4).setValue("100%");
w();
}
//关闭table对象
<%=lCode("PageOfficeCtrl1")%>
