EAS BOS 自定义导出(含Excel样式设置、多页签导出、导出文件目录校验及备份)

本文主要是介绍EAS BOS 自定义导出(含Excel样式设置、多页签导出、导出文件目录校验及备份),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天给大家分享一段关于EAS BOS自定义导出的开发。

功能背景:

叙事界面调用此类:

    /**
     * 调用案例
     * 在需要调用的界面  onload方法中添加
     * ExcelExport.getExcelExport(tblMain, toolBar);
     * 
     */

相关常用功能:

1:常用Excel样式设置

2:Excel多页签导出,后续补上对应多线程导出

2:Excel导出目录检查

3:导出备份

 

/*** */
package com.kingdee.eas.custom.test.client;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;import javax.swing.JFileChooser;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;import com.ibm.as400.util.commtrace.Data;
import com.kingdee.bos.ctrl.kdf.table.IRow;
import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.swing.KDToolBar;
import com.kingdee.bos.ctrl.swing.KDWorkButton;
import com.kingdee.bos.ui.face.UIRuleUtil;
import com.kingdee.eas.cp.odm.web.ChooseRedHeadBean;
import com.kingdee.eas.util.client.EASResource;/*** @author gectan* 2018.12.10* excel导出*/
public class ExcelExport {/*	常用组件:HSSFWorkbook                      excel的文档对象HSSFSheet                         excel的表单HSSFRow                           excel的行HSSFCell                          excel的格子单元HSSFFont                          excel字体HSSFDataFormat                    日期格式HSSFHeader                        sheet头HSSFFooter                        sheet尾(只有打印的时候才能看到效果)样式:HSSFCellStyle                       cell样式辅助操作包括:HSSFDateUtil                        日期HSSFPrintSetup                      打印HSSFErrorConstants                  错误信息表*//*** 调用案例* 在需要调用的界面  onload方法中添加* ExcelExport.getExcelExport(tblMain, toolBar);* *//*** @author gectan * 2018-12-11* 参数 tblMain  表编辑器名称* 参数 toolBar  工具栏* */public static void getExcelExport(final KDTable tblMain, KDToolBar toolBar){KDWorkButton btnExport = new KDWorkButton();btnExport.setIcon(EASResource.getIcon("imgTbtn_output"));btnExport.setToolTipText("自定义导出");btnExport.setText("自定义导出");toolBar.addRightComponent(btnExport, 20);btnExport.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {//setExcelExporter(tblMain);setExcelExporter1(tblMain);}});}/**   * @Title: setExcelExporter1   * @Description: TODO(个人Excel导出测试类,勿用)   * @param: @param tblMain      * @return: void      * @throws   */protected static void setExcelExporter1(KDTable tblMain) {Date date = new Date();//注意日期格式是HH-mm-SS,不是HH:mm:SS   Excel文件名不允许有":"SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-SS");  String now = sdf.format(date);//获取用户选择的导出路径String url = null ;String dec = null ;JFileChooser chooser = new JFileChooser();chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//设置只能选择目录int returnVal = chooser.showOpenDialog(null);if(returnVal == JFileChooser.APPROVE_OPTION) {url =chooser.getSelectedFile().getPath() ;}String  srcfile = url + "\\Excel导出测试根目录";String  fileLog = url + "\\Excel导出测试根目录\\导出备份";File fileParent = new File(srcfile);File exportLog = new File(fileLog);if(!fileParent.exists()){fileParent.mkdirs();   //创建文件夹  exportLog.mkdirs();}url = srcfile + "\\Excel导出测试.xls";dec = fileLog + "\\Excel导出测试("+now+").xls";//创建HSSFWorkbook对象(excel的文档对象)HSSFWorkbook workBook = new HSSFWorkbook();//设置字体样式HSSFFont font = workBook.createFont();font.setColor(HSSFColor.RED.index);                 // 颜色font.setFontHeightInPoints((short) 15);             // 字体大小font.setFontName("仿宋_GB2312");                     // 字体font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);     // 加粗font.setItalic(true);                               // 设置斜体font.setUnderline(HSSFFont.U_SINGLE);               // 设置下划线//设置单元格样式HSSFCellStyle cellStyle = workBook.createCellStyle();cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);   //左边框cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);    //上边框cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);  //右边框cellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY);cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);   //cellStyle.setFillForegroundColor(HSSFColor.RED.index);           //设置前景色 cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_YELLOW.index);    //设置背景颜色    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中//设置日期格式  其他类型的字段,也在cellStyle下设置//cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(“m/d/yy h:mm”));  cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中//建立新的sheet对象(excel的表单)HSSFSheet sheet = workBook.createSheet("页签1");       //创建工作表(Excel页签)sheet.setDefaultRowHeightInPoints(10);                //设置行高HSSFRow row = sheet.createRow(0); //创建Excel的第一行row.createCell(0).setCellValue("Excel导出测试");        //给第一行的单元格赋值       row.getCell(0).setCellStyle(cellStyle);              //设置单元格样式row.getCell(0).getCellStyle().setFont(font);         //设置字体格式   (注意:字体样式写在单元格样式后)//row1.setRowStyle(cellStyle);                       //将样式应用到行,但有些样式只对单元格起作用//合并单元格          构造参数依次为起始行,截至行,起始列, 截至列sheet.addMergedRegion(new CellRangeAddress(0,0,0,5));HSSFRow row0 = sheet.createRow(1);row0.createCell(0).setCellValue("列1");row0.createCell(1).setCellValue("列2");row0.createCell(2).setCellValue("列3");row0.createCell(3).setCellValue("列4");row0.createCell(4).setCellValue("列5");row0.createCell(5).setCellValue("列6");HSSFRow row1 = sheet.createRow(2);row1.createCell(0).setCellValue("值1");row1.createCell(1).setCellValue("值2");row1.createCell(2).setCellValue("值3");row1.createCell(3).setCellValue("值4");row1.createCell(4).setCellValue("值5");row1.createCell(5).setCellValue("值6");HSSFSheet sheet1 = workBook.createSheet("页签2");HSSFRow row10 = sheet1.createRow(0);row10.createCell(0).setCellValue("列11");row10.createCell(1).setCellValue("列12");row10.createCell(2).setCellValue("列13");HSSFRow row11 = sheet1.createRow(1);row11.createCell(0).setCellValue("值1");row11.createCell(1).setCellValue("值2");row11.createCell(2).setCellValue("值3");FileOutputStream fileOut = null ;try {File srcFile = new File(url);File decFile = new File(dec);if(srcFile.exists()){  //当文件已存在时,//处理方式二://将Excel复制到指定地方在创建新的Excel。cutFile(srcFile, decFile);//处理方式一://删除原有 。导出时,最好关闭原有的Excel,并且打卡新导出的Excel时,最好刷新下当前文件夹,以为重复操作有时会存在缓存。srcFile.delete();   }fileOut = new FileOutputStream(srcFile);workBook.write(fileOut);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally{try {fileOut.close();} catch (IOException e) {e.printStackTrace();}}}/*** * @Title: cutFile   * @Description: TODO(文件剪切)   * @param: @param src   源文件* @param: @param dec   目标文件  * @return: void      * @throws*/public static void cutFile(File src, File dec){FileOutputStream fileOutputStream = null ;InputStream inputStream = null;byte[] bytes = new byte[1024];int temp = 0;try {inputStream = new FileInputStream(src); fileOutputStream = new FileOutputStream(dec);while((temp = inputStream.read(bytes)) != -1){fileOutputStream.write(bytes, 0, temp);fileOutputStream.flush();} } catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally{if(inputStream != null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}if (fileOutputStream != null) {try {fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}}}}}

 

 


 

 


 

这篇关于EAS BOS 自定义导出(含Excel样式设置、多页签导出、导出文件目录校验及备份)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814707

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF