1、建立web工程引入jar包:commons-fileupload.jarcommons-lang-1.0.1.jarjspsmartupload.jarpoi-2.5-final-20040302.jarservlet-api.jarservlet.jar具体Demo示例,详见360云盘“经典详例Demo”

View Code

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>xsy_poi_importExcel</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>upload.jsp</welcome-file></welcome-file-list>
</web-app>

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>上传Excel</title>
</head>
<body><form action="./submitUp.jsp" method="post" name="fm" target=fraSubmit ENCTYPE="multipart/form-data"><table><tr><td class = title>上传Excel文件地址:<font color="#FF0000">*</font></td><td class=common><input class=common type="file" name=FileName color="#FFFFFF"></td></tr><tr><input type="submit" value="上传"/></tr></table></form>
</body>
</html>

<%@page import="com.xsy.excel_upload.DailyBankImportBL"%>
<%//程序名称:submitUp.jsp//程序功能:执行银行对账单批量导入//创建日期:2015-06-17//创建人  : xushuyi//更新记录:  更新人    更新日期     更新原因/内容
%>
<%@page contentType="text/html;charset=gb2312" %>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%String content = "";//上传文件
        mySmartUpload.initialize(pageContext);mySmartUpload.setTotalMaxFileSize(10485760);//10Mtry{mySmartUpload.upload();}catch(Exception ex){ex.printStackTrace();}String path = application.getRealPath("");String ToPath = "/yd_work/DaliyBankImport/";//获取导入文件需要保存的路径String filePath ="",excelName = "";//声明路径  导入文件名try{com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);filePath = path+ToPath;filePath = filePath.replace('\\','/');excelName = "DaliyBank_0000000000.xls";System.out.println("银行对账单批量导入文件保存路径:" + filePath + excelName);//将上传的文件保存到指定目录下  /yd_work/DaliyBankImport/myFile.saveAs(filePath+excelName,myFile.SAVEAS_PHYSICAL);mySmartUpload = null;}catch(Exception e){e.printStackTrace();}List<String> list = new ArrayList<String>();list.add(filePath);list.add(excelName);DailyBankImportBL dbBankImportBL = new DailyBankImportBL();try{if(!dbBankImportBL.submitData(list)){content = "失败";}else{content = "成功";}}catch(Exception e){content = "银行账单导入失败,请检查导入文件!";e.printStackTrace();}
%>
<html>
<script language="JavaScript">var message = "<%=content%>";alert(message);
</script>
</html>

package com.xsy.excel_upload;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
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.poifs.filesystem.POIFSFileSystem;public class DailyBankImportBL{/*** 文件上传到服务器的路径*/private String tfilePath;/*** 文件保存在服务器的名字*/private String texcelName;/*** 上传文件的列数*/private static final int COLUMN = 10;//解析Excel文件private InputStream is = null;private POIFSFileSystem fs = null; private HSSFWorkbook wb = null;private HSSFSheet sheet = null;private HSSFRow row = null;private HSSFCell cell = null;/*** 接收数据* 进行银行账单批量导入业务逻辑处理* @param vData* @return*/public boolean submitData(List<String> list){tfilePath = list.get(0);texcelName = list.get(1);return excelToSSRS();}/*** 将上传的Excel文件进行解析并转化为SSRS容器* @return*/private boolean excelToSSRS() {String tempStr = null;try {File file = new File(tfilePath+texcelName);is = new FileInputStream(file);fs = new POIFSFileSystem(is);wb = new HSSFWorkbook(fs);sheet = wb.getSheetAt(0);System.out.println("sheet最后一行:"+sheet.getLastRowNum());for (int i = 5; i <= sheet.getLastRowNum(); i++) {row = sheet.getRow(i);if (row != null) {for (short j = 0; j < COLUMN; j++) {cell = row.getCell(j);if (cell!=null) {/*** cell.getCellType()  获取格式类型* HSSFCell.CELL_TYPE_NUMERIC  判断为数值  0* HSSFCell.CELL_TYPE_STRING   判断为字符串 1*/if ((j==7||j==8||j==9) && (cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC)) tempStr = String.valueOf(cell.getNumericCellValue());else tempStr = cell.getStringCellValue();} else {tempStr = "";}System.out.println((!StringUtils.isEmpty(tempStr) && tempStr.equals("--")) ? "" : tempStr);}}}is.close();file.delete();} catch (Exception e) {e.printStackTrace();return false;} return true;}
}

转载于:https://www.cnblogs.com/xushuyi/articles/4626343.html

JAVA编码(27)——执行批量导入Excel文件并进行解析相关推荐

  1. ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具

    ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具 简介 ExcelToOracle 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver ...

  2. ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具

    ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...

  3. Python批量导入Excel文件中的不重复数据到SQLite数据库

    封面图片:<Python可以这样学>,董付国,清华大学出版社 ============== 好消息:智慧树网APP"知到"中搜索"董付国"可以免费观 ...

  4. R语言批量导入Excel文件并按表分类汇总

    需求:有n个Excel文件,每个文件包含表的数量不等,但全部表都有表名,并是根据同一的规范命名,比如与悟空有关的数据,存放在<悟空>表中,现在需要按表名对所有数据分类汇总 library( ...

  5. 使用Java泛型和反射机制编写Excel文件生成和解析的通用工具类

    前几天被派到一个小项目中做临时维护,工作地点不方便且不说,项目代码那叫一个恶心... 代码几乎完全没有注释.这应该是我们天朝大部分程序员的习惯,代码不写注释,给后面维护的同事带来多大麻烦啊! 几百行的 ...

  6. matlab 将txt导入excel,[转载]MATLAB  批量导入excel和txt文件的方法

    将一个文件目录下所有的文件名字全部倒入到一个文件中,除了使用ls函数以外,还可以使用 file=dir('C:UsersAdministratorDesktopMATLAB数据的导入导出以及试验的数据 ...

  7. matlab 批量导入excel,MATLAB  批量导入excel和txt文件的方法

    将一个文件目录下所有的文件名字全部倒入到一个文件中,除了使用ls函数以外,还可以使用 file=dir('C:\Users\Administrator\Desktop\MATLAB数据的导入导出以及试 ...

  8. ExcelToMySQL-批量导入Excel文件到MySQL数据库的自动化工具

    ExcelToMySQL:批量导入Excel文件到MySQL数据库的自动化工具 简介 ExcelToMySQL 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver)的自 ...

  9. Android手机免费批量导入Excel姓名手机号码为通讯录联系人

    对于管理人员(辅导员.人力资源或者其他管理人员)来说,批量导入数据是经常需要面对的事情.一个高效率的专业管理人员,需要有高效率的工具.为此,本篇博客将为您提供一个关于在Android手机免费批量导入e ...

最新文章

  1. 打不开_网页打不开,怎解?
  2. 上下两个x轴_点胶机:3轴,4轴,5轴,你懂了吗?
  3. maven web项目不能创建src/main/java等文件夹的问题
  4. 【数据结构与算法】图结构最小生成树Kruskal算法的Java实现
  5. php 什么情况下加异常,PHP中的异常
  6. 计算机控制 重修,计算机控制技术重修复习提纲.doc
  7. z变换判断稳定性和因果性_试题库 - 7:z变换 -
  8. PS · class 1
  9. mysql获取某个最大的值的一行数据_某一字段分组取最大(小)值所在行的数据
  10. 【Android Test】糟心的“Empty test suite ”异常
  11. 网络通信OSI七层或五层模型,路由协议(OSPF,IGRP等)
  12. 炒币的诱惑、安稳的生活
  13. 身份证识别sdk在生活中的广泛应用
  14. RFID服装资产管理-新导智能
  15. 【转】windows安装jira
  16. jvarkit包问题反馈:构建成功,部分方法测试失败第1类错误分析
  17. 【C进阶】第十篇——数据在内存中的存储
  18. Nginx:正向代理与反向代理
  19. 新手福音!最全面的易懂CSS总结,一篇博文让你了解CSS,动一动小手收藏吧
  20. Linux建立软链接、硬链接

热门文章

  1. [深度学习-实践]Tensorflow 2.x应用ResNet SeNet网络训练cifar10数据集的模型在测试集上准确率 86%-87%,含完整代码
  2. Python中李群SO(3)与李代数so(3)之间指数映射与实现源码
  3. LFDMM源码剖析(融入词向量的概率图模型)
  4. 一张图学会Xmind创建思维导图【转载】
  5. 为什么高斯分布概率密度函数的积分等于1
  6. C 创建基本图表 Chart Controls
  7. NLP(新闻文本分类)——基于机器学习的文本分类
  8. toj 4065 The Coco-Cola Store
  9. mysql5.6semi plugin_mysql5.6 semi replication 半同步复制配置(示例代码)
  10. vscode 怎么编辑sphinx_如何在vs Code 中编辑和调试Stata程序