转载:国产操作系统麒麟v10、UOS在线打开excel文件并动态赋值
<div id="content_views" class="htmledit_views">
<blockquote>
在实际的开发过程中,经常会遇到数据库中的数据填充到 excel 生成一份正式文件的功能,PageOffice 客户端控件支持在线预览 Excel 文件时,通过 Workbook 对象来实现对 Excel 文件的数据填充功能,如果只是简单的填充一下数据,那么通过调用 Sheet 对象的 openCell 方法获取到 Cell 对象并赋值即可
Java 命名空间:com.zhuozhengsoft.pageoffice.excel
后端 springboot 项目关键代码:
在后端编写代码调用 webOpen 方法打开文件,并创建 Workbook 对象填充数据
保存文件的服务器端后台方法为:saveFile
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
// 定义 Workbook 对象
WorkbookWriter wb = new WorkbookWriter ();
// 定义 Sheet 对象,"Sheet1" 是打开的 Excel 表单的名称
SheetWriter sheet = wb.openSheet("Sheet1");
// 定义 Cell 对象
ExcelCellWriter cellB4 = sheet.openCell("B4");
// 给单元格赋值
cellB4.setValue("1 月");
ExcelCellWriter cellC4 = sheet.openCell("C4");
cellC4.setValue("300");
ExcelCellWriter cellD4 = sheet.openCell("D4");
cellD4.setValue("270");
ExcelCellWriter cellE4 = sheet.openCell("E4");
cellE4.setValue("270");
ExcelCellWriter cellF4 = sheet.openCell("F4");
DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();
cellF4.setValue(df.format(270.00 / 300 * 100) + "%");
poCtrl.setWriter(wb); // 必须。
poCtrl.setSaveFilePage("saveFile"); // 设置保存文件的接口地址
//webOpen 的第一个参数支持能够输出下载文件的 Url 相对地址或者文件在服务器上的磁盘路径两种方式
poCtrl.webOpen("D:\documents\test.xlsx", OpenModeType.xlsNormalEdit, "张三");
在线预览效果:
在 SaveFilePage 属性指向的 saveFile 接口中,创建 FileSaver 对象处理文件的保存工作,把赋值后的文件保存到服务器
FileSaver fs = new FileSaver(request, response);
fs.saveToFile("D:\\documents\\test.xlsx");
fs.close();
另存文件到客户端是 js 方法
前端vue项目关键代码:
OnPageOfficeCtrlInit() {
// PageOffice 的初始化事件回调函数,您可以在这里添加自定义按钮
pageofficectrl.AddCustomToolButton("保存文件到服务器", "Save()", 0);
pageofficectrl.AddCustomToolButton("另存文件到客户端", "SaveAs()", 0);
}
Save() {
pageofficectrl.WebSave();
}
SaveAs() {
pageofficectrl.ShowDialog(3);
}
vue+springboot 项目集成 pageoffice 参考文档:PageOffice 最简集成代码 (VUE+Springboot) | PageOffice 开发者中心