转载:国产操作系统麒麟v10、UOS在线打开excel文件并动态赋值

lhl77 / 2024-09-14 / 原文

在实际的开发过程中,经常会遇到数据库中的数据填充到excel生成一份正式文件的功能,PageOffice客户端控件支持在线预览Excel文件时,通过Workbook对象来实现对Excel文件的数据填充功能,如果只是简单的填充一下数据,那么通过调用Sheet对象的openCell方法获取到Cell对象并赋值即可

Java命名空间:com.zhuozhengsoft.pageoffice.excel

后端springboot项目关键代码:

在后端编写代码调用webOpen方法打开文件,并创建Workbook对象填充数据

保存文件的服务器端后台方法为:saveFile

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. //定义Workbook对象
  3. WorkbookWriter wb = new WorkbookWriter ();
  4. //定义Sheet对象,"Sheet1"是打开的Excel表单的名称
  5. SheetWriter sheet = wb.openSheet("Sheet1");
  6. //定义Cell对象
  7. ExcelCellWriter cellB4 = sheet.openCell("B4");
  8. //给单元格赋值
  9. cellB4.setValue("1月");
  10. ExcelCellWriter cellC4 = sheet.openCell("C4");
  11. cellC4.setValue("300");
  12. ExcelCellWriter cellD4 = sheet.openCell("D4");
  13. cellD4.setValue("270");
  14. ExcelCellWriter cellE4 = sheet.openCell("E4");
  15. cellE4.setValue("270");
  16. ExcelCellWriter cellF4 = sheet.openCell("F4");
  17. DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();
  18. cellF4.setValue(df.format(270.00 / 300 * 100) + "%");
  19. poCtrl.setWriter(wb); //必须。
  20. poCtrl.setSaveFilePage("saveFile"); // 设置保存文件的接口地址
  21. //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
  22. poCtrl.webOpen("D:\\documents\\test.xlsx", OpenModeType.xlsNormalEdit, "张三");

在线预览效果:

在SaveFilePage属性指向的saveFile接口中,创建FileSaver对象处理文件的保存工作,把赋值后的文件保存到服务器

  1. FileSaver fs = new FileSaver(request, response);
  2. fs.saveToFile("D:\\documents\\test.xlsx");
  3. fs.close();

另存文件到客户端是js方法

前端vue项目关键代码:

  1. OnPageOfficeCtrlInit() {
  2. // PageOffice的初始化事件回调函数,您可以在这里添加自定义按钮
  3. pageofficectrl.AddCustomToolButton("保存文件到服务器", "Save()", 0);
  4. pageofficectrl.AddCustomToolButton("另存文件到客户端", "SaveAs()", 0);
  5. }
  6. Save() {
  7. pageofficectrl.WebSave();
  8. }
  9. SaveAs() {
  10. pageofficectrl.ShowDialog(3);
  11. }

vue+springboot项目集成pageoffice参考文档:PageOffice最简集成代码(VUE+Springboot) | PageOffice 开发者中心