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

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

Tomcat性能参数设置

转自:http://blog.csdn.net/chinadeng/article/details/6591542 Tomcat性能参数设置 2010 - 12 - 27 Tomcat性能参数设置 博客分类: Java Linux Tomcat 网络应用 多线程 Socket 默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定J

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d