转载:国产操作系统麒麟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 开发者中心