文档章节

导入Excel

relyOnsansan
 relyOnsansan
发布于 2017/05/19 22:53
字数 1316
阅读 74
收藏 0

//实现类:FluctuationBillDataImportUI

//实现项目: 中山佳能项目 异动申请单数据导入UI

导入Excel详解

1.Bos创建导入UI

2.画好界面后进行按钮代码逻辑控制

(1)初始化数据出错处理下拉框(onload 调用)

/**
     * @author: longcw_moya
     * @date: 2017-5-23 上午12:49:18
     * @Description: 初始化数据出错处理下拉框
     */
    private void initComboError()
    {
      this.comboError.removeAllItems();
      this.comboError.addItem(ErrorHandleModeEnum.ReturnRightnow); //出错立即返回

      this.comboError.addItem(ErrorHandleModeEnum.ReturnWhenFinish); //执行完返回
      this.comboError.setSelectedIndex(0);
    }

(2)引出模板按钮代码:

/**
     * @author: longcw_moya
     * @date: 2017-5-19 下午04:54:52
     * @Description: 引出模板按钮
     * @param e
     * @throws Exception
     */
    @Override
    protected void btnExportTemplate_actionPerformed(ActionEvent e)
    throws Exception {
//    	super.btnExportTemplate_actionPerformed(e);

    	FileSelector fselector = new FileSelector(this, FileChooserPromptBox.CHOOSERTYPE_SAVE); // 创建一个文件选择器 参数1 父类 参数2 选择器类型
    	fselector.setDefFileName("FluctuationData.xls"); //设置文件选择器名称
    	fselector.show();
    	
    	//校验文件选择器是否被取消
    	if(fselector.isCanceled()) {
    		return;
    	}
    	
    	String expFilePath = fselector.getData().toString(); //获取Exp文件输出路径
    	FileOutputStream out = null; //创建文件输出流 
    	
    	try {
    		out = new FileOutputStream(expFilePath); //将加载输出路径
    		
    	} catch (FileNotFoundException ex) { //防止覆盖一打开文件
    		MsgBox.showError(this, "该文件已打开,不能覆盖");
    		SysUtil.abort();
    	}
    	
    	HSSFWorkbook wb = new HSSFWorkbook(); //创建一个Excel文件
    	
    	//1.初始化单元格样式
    	HSSFCellStyle nameCellStyle = createNameCellStyle(wb); //创建名称单元格样式(Head中文标识行)
        HSSFCellStyle codeCellStyle = createCodeCellStyle(wb); //创建编码单元格样式(Head英文标识行)
        HSSFCellStyle titleStyle = createTitleCellStyle(wb); //创建标题单元格样式
        HSSFCellStyle cellValueStyle = createValueCellStyle(wb); //创建值单元格样式
        
        HSSFSheet sheet = wb.createSheet(); //创建一个excel的sheet(工作表,也就是新增一个新页签)
        
        //2.创建标题行
        HSSFRow titleRow1 = sheet.createRow(0);
        HSSFRow titleRow2 = sheet.createRow(1);
        
        //3.创建Head行
        HSSFRow headRow = sheet.createRow(2);
        HSSFRow headRow2 = sheet.createRow(3);
        
        /*
         * 4.初始化导出模板字段
         */
        //初始化标题单元格
        createHeadCell(titleRow1, codeCellStyle, 0, "EAS"); //初始化单元格 参数(head行, 单元格样式, 单元格下标, 单元格值)
        createHeadCell(titleRow2, codeCellStyle, 0, "fluctuationbill"); 
        
        createHeadCell(titleRow1, codeCellStyle, 1, "5.4"); 
        createHeadCell(titleRow2, codeCellStyle, 1, "内部异动名单明细"); 
        
        createHeadCell(titleRow1, titleStyle, 2, "内部异动名单明细"); 
        createHeadCell(titleRow2, titleStyle, 2, "内部异动名单明细"); 
        
        //初始化名称单元格
        createHeadCell(headRow, codeCellStyle, 0, "person");
        createHeadCell(headRow2, nameCellStyle, 0, "姓名");
        
        //初始化人员编码单元格
        createHeadCell(headRow, codeCellStyle, 1, "number");
        createHeadCell(headRow2, nameCellStyle, 1, "人员编码");
        
        //初始化异动类型单元格
        createHeadCell(headRow, codeCellStyle, 2, "type");
        createHeadCell(headRow2, nameCellStyle, 2, "异动类型");
        
        //初始化异动生效日期单元格
        createHeadCell(headRow, codeCellStyle, 3, "effectDate");
        createHeadCell(headRow2, nameCellStyle, 3, "异动生效日期");
        
        //初始化当前行政组织单元格
        createHeadCell(headRow, codeCellStyle, 4, "oldDept");
        createHeadCell(headRow2, nameCellStyle, 4, "当前行政组织");
        
        //初始化当前职位单元格
        createHeadCell(headRow, codeCellStyle, 5, "oldPosition");
        createHeadCell(headRow2, nameCellStyle, 5, "当前职位");
        
        //初始化当前职务单元格
        createHeadCell(headRow, codeCellStyle, 6, "oldJob");
        createHeadCell(headRow2, nameCellStyle, 6, "当前职务");
        
        //初始化目标职位单元格
        createHeadCell(headRow, codeCellStyle, 7, "newPosition");
        createHeadCell(headRow2, nameCellStyle, 7, "目标职位");
        
        //初始化目标行政组织单元格
        createHeadCell(headRow, codeCellStyle, 8, "newDept");
        createHeadCell(headRow2, nameCellStyle, 8, "目标行政组织");
        
        //初始化目标所属代码单元格
        createHeadCell(headRow, codeCellStyle, 9, "adminorgBase");
        createHeadCell(headRow2, nameCellStyle, 9, "目标所属代码");
        
        //初始化目标考勤代码单元格
        createHeadCell(headRow, codeCellStyle, 10, "attendanceCode");
        createHeadCell(headRow2, nameCellStyle, 10, "目标考勤代码");
        
        //初始化异动原因单元格
        createHeadCell(headRow, codeCellStyle, 11, "reason");
        createHeadCell(headRow2, nameCellStyle, 11, "异动原因");
        
        //初始化备注单元格
        createHeadCell(headRow, codeCellStyle, 12, "remark");
        createHeadCell(headRow2, nameCellStyle, 12, "备注");
        
        //初始化融合行
        sheet.addMergedRegion(new Region(0, (short) 2, 1, (short) 12));
        
        //设置默认列样式
        for (int i = 0; i < 12; i++)
        {
          sheet.setDefaultColumnStyle((short)i, cellValueStyle);
        }
        
        //设置默认列宽
        sheet.setDefaultColumnWidth((short) 60);
        
        wb.setSheetName(0, "内部异动名单明细"); //设置Excel的Sheet页签名称
        
        wb.write(out); //文件输出流写入Excel文件
        out.flush(); //清空文件输出流
        out.close(); //关闭文件输出流
        MsgBox.showInfo("模板导出成功");
    }
    
    /**
     * @author: longcw_moya
     * @date: 2017-5-19 下午07:37:03
     * @Description: 初始化名称单元格样式
     * @param workbook
     * @return
     */
    private HSSFCellStyle createNameCellStyle(HSSFWorkbook workbook) {
    	HSSFCellStyle titleStyle = null;
    	if (titleStyle == null)
    	{
    		titleStyle = workbook.createCellStyle();
    		titleStyle.setFillPattern((short) 1);
    		titleStyle.setFillForegroundColor((short) 26);

    		titleStyle.setAlignment((short) 2);
    		titleStyle.setHidden(false);
    		titleStyle.setLocked(false);
    		short borderstyle = 7;
    		titleStyle.setBorderLeft(borderstyle);
    		titleStyle.setBorderRight(borderstyle);
    		titleStyle.setBorderTop(borderstyle);
    		titleStyle.setBorderBottom(borderstyle);
    		short backColorIndex = 8;
    		titleStyle.setBottomBorderColor(backColorIndex);
    		titleStyle.setTopBorderColor(backColorIndex);
    		titleStyle.setLeftBorderColor(backColorIndex);
    		titleStyle.setRightBorderColor(backColorIndex);
    		titleStyle.setVerticalAlignment((short) 1);
    		HSSFFont defaultFont = workbook.createFont();
    		defaultFont.setFontName("宋体");
    		defaultFont.setColor((short) 8);
    		short size = 12;
    		defaultFont.setFontHeightInPoints(size);
    		titleStyle.setFont(defaultFont);
    	}
    	return titleStyle;
    }
    
    /**
     * @author: longcw_moya
     * @date: 2017-5-19 下午07:37:03
     * @Description: 初始化编码单元格样式
     * @param workbook
     * @return
     */
    private HSSFCellStyle createCodeCellStyle(HSSFWorkbook workbook)
    {
      HSSFCellStyle orgStructStyle = null;
      if (orgStructStyle == null)
      {
        orgStructStyle = workbook.createCellStyle();
        orgStructStyle.setFillPattern((short) 1);
        orgStructStyle.setFillForegroundColor((short) 31);
        orgStructStyle.setAlignment((short) 1);
        orgStructStyle.setHidden(false);
        orgStructStyle.setLocked(false);
        short borderstyle = 7;
        orgStructStyle.setBorderLeft(borderstyle);
        orgStructStyle.setBorderRight(borderstyle);
        orgStructStyle.setBorderTop(borderstyle);
        orgStructStyle.setBorderBottom(borderstyle);
        short backColorIndex = 8;
        orgStructStyle.setBottomBorderColor(backColorIndex);
        orgStructStyle.setTopBorderColor(backColorIndex);
        orgStructStyle.setLeftBorderColor(backColorIndex);
        orgStructStyle.setRightBorderColor(backColorIndex);
        orgStructStyle.setVerticalAlignment((short) 1);
        HSSFFont defaultFont = workbook.createFont();
        defaultFont.setFontName("宋体");
        short size = 12;
        defaultFont.setFontHeightInPoints(size);
        orgStructStyle.setFont(defaultFont);
      }
      return orgStructStyle;
    }
    
    /**
     * @author: longcw_moya
     * @date: 2017-5-19 下午07:37:03
     * @Description: 初始化标题单元格样式
     * @param workbook
     * @return
     */
    private HSSFCellStyle createTitleCellStyle(HSSFWorkbook workbook)
    {
      HSSFCellStyle titleStyle = null;
      if (titleStyle == null)
      {
        titleStyle = workbook.createCellStyle();
        titleStyle.setFillPattern((short) 1);
        titleStyle.setFillForegroundColor((short) 26);

        titleStyle.setAlignment((short) 2);
        titleStyle.setHidden(false);
        titleStyle.setLocked(false);
        titleStyle.setBorderLeft((short) 0);
        titleStyle.setBorderRight((short) 0);
        titleStyle.setBorderTop((short) 0);
        titleStyle.setBorderBottom((short) 0);
        short backColorIndex = 8;
        titleStyle.setBottomBorderColor(backColorIndex);
        titleStyle.setTopBorderColor(backColorIndex);
        titleStyle.setLeftBorderColor(backColorIndex);
        titleStyle.setRightBorderColor(backColorIndex);
        titleStyle.setVerticalAlignment((short) 1);
        HSSFFont defaultFont = workbook.createFont();
        defaultFont.setFontName("宋体");
        defaultFont.setColor((short) 17);
        short size = 18;
        defaultFont.setFontHeight(size);
        defaultFont.setFontHeightInPoints(size);
        titleStyle.setFont(defaultFont);
      }
      return titleStyle;
    }
    
    /**
     * @author: longcw_moya
     * @date: 2017-5-19 下午07:37:03
     * @Description:初始化值单元格样式
     * @param workbook
     * @return
     */
    private HSSFCellStyle createValueCellStyle(HSSFWorkbook workbook)
    {
      HSSFCellStyle valueStyle = workbook.createCellStyle();

      valueStyle.setAlignment((short) 1);
      valueStyle.setHidden(true);

      short borderstyle = 7;
      valueStyle.setBorderLeft(borderstyle);
      valueStyle.setBorderRight(borderstyle);
      valueStyle.setBorderTop(borderstyle);
      valueStyle.setBorderBottom(borderstyle);
      short backColorIndex = 8;
      valueStyle.setBottomBorderColor(backColorIndex);
      valueStyle.setTopBorderColor(backColorIndex);
      valueStyle.setLeftBorderColor(backColorIndex);
      valueStyle.setRightBorderColor(backColorIndex);
      valueStyle.setVerticalAlignment((short) 1);
      HSSFFont defaultFont = workbook.createFont();
      defaultFont.setFontName("宋体");
      defaultFont.setColor((short) 8);
      short size = 12;
      defaultFont.setFontHeightInPoints(size);
      valueStyle.setFont(defaultFont);
      valueStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));
      return valueStyle;
    }
    
    /**
     * @author: longcw_moya
     * @date: 2017-5-19 下午07:37:03
     * @Description: 初始化Head单元格
     * @param workbook
     * @return
     */
    private void createHeadCell(HSSFRow headRow, HSSFCellStyle cellStyle, int index, String cellValue)
    {
      HSSFCell cell6 = headRow.createCell((short)index);
      cell6.setCellType(1);

      cell6.setCellValue(cellValue);
      cell6.setCellStyle(cellStyle);
    }

 

© 著作权归作者所有

relyOnsansan
粉丝 1
博文 19
码字总数 4019
作品 0
深圳
程序员
私信 提问
JeeSite|Excel导入导出

在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel、CSV格式居多。JeeSite提供了很好的Excel的导入导出功能,隐藏了底层的很多实现,通过简单的套路式步骤即可完成数据...

秋风似刀
2017/11/15
0
0
excel动态导入数据库---mysql

环境: jdk1.8+poi-3.17+mysql-5.6+excel2010(xlsx) 工具类: 1.excel解析工具类,使用poi sax模式解析excel。生成数据格式为List<LinkedHashMap<String,String>> 4.excel工具导入服务类 5.......

Sheav
06/06
28
0
JEPLUS平台Excel批量导入的操作配置——JEPLUS软件快速开发平台

JEPLUS平台Excel批量导入的操作配置 JEPLUS平台支持Excel数据的批量导入,但是很多客户不明白批量导入怎么配置,今天这个笔记就简单说一下JEPLUS的Excel数据批量导入怎么来配置。 一、效果展...

JEPLUS
2018/06/26
42
0
Java对象和Excel转换工具XXL-EXCEL

《Java对象和Excel转换工具XXL-EXCEL》 ![donate](http://

许雪里
2017/09/13
667
0
Object-Excel映射的通用解决方案--FastEJ

FastEJ说明 简介 在互联网信息发展的时代,对报表数据的处理需要一个通用化的解决方案。而导入Excel文件到内存、导出内存数据到Excel文件 是一个普遍化的需求。本项目旨在设计一个Object-Ex...

悟达
2016/09/14
719
0

没有更多内容

加载失败,请刷新页面

加载更多

左边竖条的实现方法

下面这个图形,只使用一个标签,可以有多少种实现方式: 假设我们的单标签是一个 div : 1 < div > div> 定义如下通用CSS: 1 2 3 4 5 6 div{ position : relative ; width : 200px ; height ...

前端老手
32分钟前
2
0
java利用ECHARTS.JS在前台显示图表

步骤1: (1)在java后台,使用MSQL分组函数,列出所有线在对应的点的值, (2)组成的Map如图所示: 注意: key为0的value表示X轴需要的数据;key为其他的值表示图表线条的名字,value为x轴的点对应的y...

文文1
34分钟前
6
0
解题博客

https://blog.csdn.net/hk2291976/article/category/9265848

素雷
59分钟前
4
0
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

下文中提及的inuxdeployqt patchelf appimagetool工具及示例下载地址: 链接: https://pan.baidu.com/s/1BGm_btMIe75uW9hOC09Xlg 提取码: 7ayh 需要创建目录及文件 xxx.AppDir xxx.AppDir/Ap...

shzwork
今天
5
0
javascript-ASCII码混合四位随机验证码

// 产生一个随机字符库:数字大写小写的数量是对应的 function randomStr(){ // 产生库 var strData = ""; for(var i=0;i<4;i++){ var num = random(0,9); var az = String.fromCharCode(ra......

ACKo
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部