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

相关文章

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1