EAS自定义导入Excel数据功能
自定义导入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数据功能相关推荐
- 【二十四】springboot使用EasyExcel和线程池实现多线程导入Excel数据
springboot篇章整体栏目: [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合toke ...
- 使用 Datagrip 导入 Excel 数据表
大部分程序猿使用的数据库管理工具基本都是 Navicat 管理工具,但我个人觉得还是 jetbrains 家族的 DataGrip 好用, 界面好看,操作界面和旗下其他IDE大同小异,会用 IDEA, ...
- php导入excel先检查,php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入?:怎么样筛选excel表格重复的数据库...
php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入? 如果不想每询一次以提前做一个统询 $sql=mysql_query("select distinct Co ...
- plsql导入excel数据
LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.参考了网上一些资料以及遇到的一些问题,整理了一下. 具体的导入操作如下: 第一个坑:当使用默认的E ...
- 使用vue,实现前端导入excel数据
文章目录 前言 一.引入组件 二.封装导入功能的组件 1.编写组件template 2.获取数据 3.调用接口把数据传给后端 三.总结 前言 继前边的vue的导出功能后,自己又去在网上搜了vue导入e ...
- 如何利用API实现行式报表后台导入excel数据入库
润乾报表提供了excel导入页面后入库的功能,丰富了用户导入excel的方式.对于普通填报表,润乾报表提供了直接后台入库和导入页面入库的方式,那么在行式填报表中,如何实现后台导入excel入库呢 ...
- HSSFWorkbook下载xls表格模板及导入excel数据
效果图:(有列置灰.隐藏.下拉列表功能) 下载excel模板代码: private AjaxResult myBatchImportTemplateSelect(List<ProjectTask ...
- fastadmin实现导出Excel和导入Excel数据
第一:导出数据为Excel 注意:直接url访问,不能使用ajax,因为ajax要求返回数据,和PHPExcel一会浏览器输出冲突!将数据作为参数 1.导出所有用户数据 代码:在index.html文 ...
- 【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据
一.前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的. 首先需要安装两个模块,一个是pandas,另一个是xlrd. 在顶部菜单栏中点击文件,再点击设置,然 ...
最新文章
- iOS crash日志分析
- Windows Phone 7 网络编程之使用Socket(芒果更新)
- Nginx的http块自定义服务日志
- 用 chown 和 chmod 修改目录所属用户及权限
- AcWing 126. 最大的和
- Angular最新教程-第六节编写响应式导航栏
- 所有程序员都应该遵守的11条规则
- 大学教授撰写诗歌引人思考:美好人生怎能终止在17岁?
- “3D几何与视觉技术”全球在线研讨会第六期第七期
- java创建android快捷方式_Android 通过应用程序创建快捷方式
- elisa标准曲线怎么做_Curve Expert软件绘制ELISA标准曲线流程 | 每日生物评论
- 20211102:数字滤波器按照实现结构的分类及其优缺点总结
- Oracle11gR1中细粒度访问网络服务(转)
- 程序员计算器HEX、EDC、OCT的意思
- CSS之background深度详解
- linux自定义以太网协议_如何压接自己的任意长度的自定义以太网电缆
- java如何调用手机拍照功能_手把手教你如何实现拍照功能
- 云旗OS助手火了!可一站式体验统信UOS
- git 进阶系列教程--tag
- 云平台 物联网 概念 数据挖掘技术
热门文章
- United Plugins Total Bundle for Mac(联合音频插件合集包)
- InfiniteScroll 无限滚动组件的使用
- 系统架构师论文-论基于构件的软件开发(测井资料处理与解释集成软件)
- chatGPT真有那么神吗?
- Verilog组合逻辑设计
- 物联网毕设 STM32题目项目汇总 - 100例
- 【毕业设计_课程设计】开源物联网系统设计(源码+论文)
- CAM350 常用快捷键及简单操作问题
- 使用MathType的一些技巧
- 在java中有以下代码_集成电路引脚排列应该是______。