自定义导入Excel数据功能

protected void actionImpExcelData_actionPerformed(ActionEvent e) {//打开文件上传窗口,并读取Excel数据try {final JFileChooser fc = new JFileChooser();int retVal = fc.showOpenDialog(this);//显示出打开选择文件的窗口,获取到文件返回0否则返回1。if (retVal == JFileChooser.APPROVE_OPTION) {//获取到了文件才进行下一步File f = fc.getSelectedFile();final String filePath = f.getAbsolutePath();String fileName = f.getName();// egName.txtString[] fnZ = fileName.split("\\.");// egName.txtString strFileExten = null;try {strFileExten = fnZ[fnZ.length - 1];//获取后缀名} catch (Exception ex) {strFileExten = "未知类型";ex.printStackTrace();}if(!strFileExten.toLowerCase().equals("xls") &&!strFileExten.toLowerCase().equals("xlsx")){MsgBox.showInfo("导入失败!请选择EXCEL文件");SysUtil.abort();}LongTimeDialog dialog = UITools.getDialog(this);//进度条dialog.setTitle(this.getUITitle());dialog.setLongTimeTask(new ILongTimeTask() {public Object exec() throws Exception {CoreBaseCollection colls = readExcel(filePath);Factory.getRemoteInstance().save(colls);MsgBox.showInfo("导入成功");return Boolean.TRUE;}public void afterExec(Object result) throws Exception {}});dialog.show();}} catch (Exception e1) {e1.printStackTrace();}
}private CoreBaseCollection readExcel(String filePath) throws Exception {//读取Excel内容CoreBaseCollection colls=new CoreBaseCollection();//数据集合try {FileInputStream finput = new FileInputStream(filePath);//设定FileINputStream读取Excel档 POIFSFileSystem fs = new POIFSFileSystem( finput );HSSFWorkbook wb = new HSSFWorkbook(fs);if (wb.getSheetAt(0)==null) {MsgBox.showInfo("导入失败!Excel内容为空");SysUtil.abort();}HSSFSheet sheet = wb.getSheetAt(0);//创建一个样式  HSSFCellStyle cellStyle = wb.createCellStyle();  //创建一个DataFormat对象  HSSFDataFormat format = wb.createDataFormat();  cellStyle.setDataFormat(format.getFormat("@"));  if (!checkTemplate(sheet.getRow(1))) {MsgBox.showInfo("导入失败!请检查发票导入模板是否正确");SysUtil.abort();}finput.close();HSSFRow row=null;HSSFCell cell=null;for (int rowIndex=2;rowIndex<=sheet.getLastRowNum();rowIndex++){//往下读取每一行数据row=sheet.getRow(rowIndex);if (row==null) {break;}Info info = new Info();//分录数据StringBuilder isImpKey = new StringBuilder("");//key为 发票代码+发票号码+出口合同号for (int colIndex=0;colIndex<row.getLastCellNum();colIndex++){//往右读取每一列数据cell=row.getCell(colIndex);if (cell!=null && !cell.equals("") && cell.getCellType() != HSSFCell.CELL_TYPE_BLANK) {info.setValue(value);}}colls.add(info);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} return colls;
}

EAS自定义导入Excel数据功能相关推荐

  1. 【二十四】springboot使用EasyExcel和线程池实现多线程导入Excel数据

      springboot篇章整体栏目:  [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合toke ...

  2. 使用 Datagrip 导入 Excel 数据表

    大部分程序猿使用的数据库管理工具基本都是 Navicat 管理工具,但我个人觉得还是 jetbrains 家族的 DataGrip 好用, 界面好看,操作界面和旗下其他IDE大同小异,会用 IDEA, ...

  3. php导入excel先检查,php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入?:怎么样筛选excel表格重复的数据库...

    php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入? 如果不想每询一次以提前做一个统询 $sql=mysql_query("select distinct Co ...

  4. plsql导入excel数据

    LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.参考了网上一些资料以及遇到的一些问题,整理了一下. 具体的导入操作如下: 第一个坑:当使用默认的E ...

  5. 使用vue,实现前端导入excel数据

    文章目录 前言 一.引入组件 二.封装导入功能的组件 1.编写组件template 2.获取数据 3.调用接口把数据传给后端 三.总结 前言 继前边的vue的导出功能后,自己又去在网上搜了vue导入e ...

  6. 如何利用API实现行式报表后台导入excel数据入库

     润乾报表提供了excel导入页面后入库的功能,丰富了用户导入excel的方式.对于普通填报表,润乾报表提供了直接后台入库和导入页面入库的方式,那么在行式填报表中,如何实现后台导入excel入库呢 ...

  7. HSSFWorkbook下载xls表格模板及导入excel数据

    效果图:(有列置灰.隐藏.下拉列表功能) 下载excel模板代码: private AjaxResult myBatchImportTemplateSelect(List<ProjectTask ...

  8. fastadmin实现导出Excel和导入Excel数据

    第一:导出数据为Excel 注意:直接url访问,不能使用ajax,因为ajax要求返回数据,和PHPExcel一会浏览器输出冲突!将数据作为参数 1.导出所有用户数据 代码:在index.html文 ...

  9. 【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据

    一.前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的. 首先需要安装两个模块,一个是pandas,另一个是xlrd. 在顶部菜单栏中点击文件,再点击设置,然 ...

最新文章

  1. iOS crash日志分析
  2. Windows Phone 7 网络编程之使用Socket(芒果更新)
  3. Nginx的http块自定义服务日志
  4. 用 chown 和 chmod 修改目录所属用户及权限
  5. AcWing 126. 最大的和
  6. Angular最新教程-第六节编写响应式导航栏
  7. 所有程序员都应该遵守的11条规则
  8. 大学教授撰写诗歌引人思考:美好人生怎能终止在17岁?
  9. “3D几何与视觉技术”全球在线研讨会第六期第七期
  10. java创建android快捷方式_Android 通过应用程序创建快捷方式
  11. elisa标准曲线怎么做_Curve Expert软件绘制ELISA标准曲线流程 | 每日生物评论
  12. 20211102:数字滤波器按照实现结构的分类及其优缺点总结
  13. Oracle11gR1中细粒度访问网络服务(转)
  14. 程序员计算器HEX、EDC、OCT的意思
  15. CSS之background深度详解
  16. linux自定义以太网协议_如何压接自己的任意长度的自定义以太网电缆
  17. java如何调用手机拍照功能_手把手教你如何实现拍照功能
  18. 云旗OS助手火了!可一站式体验统信UOS
  19. git 进阶系列教程--tag
  20. 云平台 物联网 概念 数据挖掘技术

热门文章

  1. United Plugins Total Bundle for Mac(联合音频插件合集包)
  2. InfiniteScroll 无限滚动组件的使用
  3. 系统架构师论文-论基于构件的软件开发(测井资料处理与解释集成软件)
  4. chatGPT真有那么神吗?
  5. Verilog组合逻辑设计
  6. 物联网毕设 STM32题目项目汇总 - 100例
  7. 【毕业设计_课程设计】开源物联网系统设计(源码+论文)
  8. CAM350 常用快捷键及简单操作问题
  9. 使用MathType的一些技巧
  10. 在java中有以下代码_集成电路引脚排列应该是______。