java poi导入Excel(个人代码)
案例使用的框架:jsp+spring+mybaties
<form id="importForm" name="importForm" method="post" target="win" action="importExcel.ht" enctype="multipart/form-data">
<div class="row">
<table id="tableid" class="table-detail" cellpadding="0" cellspacing="0" border="0">
<tr>
<th width="22%">选择文件:</th>
<td width="78%"><input type="file" size="40" name="xmlFile" id="xmlFile"/></td>
</tr>
</table>
</div>
<input type="hidden" name="rq" value="${rq}">
</form>
后台代码
@RequestMapping("importExcel")
@Action(description="导入Excel弹窗")
public void importExcel(MultipartHttpServletRequest request,HttpServletResponse response) throws Exception
{
String rq=request.getParameter("rq");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
MultipartFile fileLoad = request.getFile("xmlFile");
ResultMessage resultMessage = null;
try {
String fileType = fileLoad.getOriginalFilename().substring(fileLoad.getOriginalFilename().lastIndexOf(".") + 1, fileLoad.getOriginalFilename().length());
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook(fileLoad.getInputStream());
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(fileLoad.getInputStream());
} else {
throw new Exception("读取的不是excel文件");
}
//读取了模板内所有sheet内容
HSSFSheet sheet = (HSSFSheet) wb.getSheetAt(0);
HSSFCell cell0 = null;
HSSFCell cell1 = null;
Map<String, String> map = new HashMap<String, String>();
//读取excel,处理自己的业务
StringBuffer buf= new StringBuffer();
for(int i=2;i<=97;i++){
cell0 = sheet.getRow(i).getCell(0);
cell1 = sheet.getRow(i).getCell(1);
String key = cell0.getStringCellValue().replace(":", "");
String val = cell1.getStringCellValue();
if(key.startsWith("0")){
key = key.substring(1,key.length());
}
key = "v"+key;
map.put(key, val);
}
String value = map.toString().replace("=", ":");
LoadDate ld = new LoadDate();
ld.setValue(value);
ld.setRq(sdf.parse(rq));
ld.setSbzt("未上报");
for(int i=98;i<=102;i++){
cell0 = sheet.getRow(i).getCell(0);
cell1 = sheet.getRow(i).getCell(1);
String key = cell0.getStringCellValue();
String val = cell1.getStringCellValue();
if("高峰电量".equals(key)){
ld.setYcgfdl(Long.parseLong(val));
}else if("全天电量".equals(key)){
ld.setYcqdl(Long.parseLong(val));
}else if("错峰电力".equals(key)){
ld.setYccfdLi(Long.parseLong(val));
}else if("错峰电量".equals(key)){
ld.setYccfdLl(Long.parseLong(val));
}else if("低谷电量".equals(key)){
ld.setYcdgdl(Long.parseLong(val));
}
}
Long id = UniqueIdUtil.genId();
ld.setId(id);
ld.setSbzt("未上报");
loadDateService.add(ld);
String result="导入数据成功";
if(result.contains("成功")){
resultMessage = new ResultMessage(ResultMessage.Success, "导入成功!");
}else{
resultMessage = new ResultMessage(ResultMessage.Fail, result);
}
writeResultMessage(response.getWriter(), resultMessage);
} catch (Exception ex) {
ex.printStackTrace();
String str = MessageUtil.getMessage();
ex.getLocalizedMessage();
if (StringUtil.isNotEmpty(str)) {
resultMessage = new ResultMessage(ResultMessage.Fail,"导入失败请检查导入的Excel是否正确:" + str);
response.getWriter().print(resultMessage);
} else {
String message = ExceptionUtil.getExceptionMessage(ex);
resultMessage = new ResultMessage(ResultMessage.Fail, "导入失败请检查导入的Excel是否正确");
response.getWriter().print(resultMessage);
}
}
}
个人经验总结
导入报版本不匹配问题
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
MultipartFile fileLoad = request.getFile("xmlFile");
try {
String fileType = fileLoad.getOriginalFilename().substring(
fileLoad.getOriginalFilename().lastIndexOf(".") + 1,
fileLoad.getOriginalFilename().length());
Workbook wb = null;
if (fileType.equals("xls")) {
try {
//07+版本
wb = new HSSFWorkbook(fileLoad.getInputStream());
} catch (Exception e) {
//03版
wb = new XSSFWorkbook(fileLoad.getInputStream());
}
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(fileLoad.getInputStream());
} else {
throw new Exception("读取的不是excel文件");
}
java poi导入Excel(个人代码)的更多相关文章
- 在java poi导入Excel通用工具类示例详解
转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36 作者:daochuwenziyao 我要评论 这篇文章主要给大家介绍了关于在j ...
- java poi 导入excel
最近项目需要导入excel,网上有很多例子,自己整合记录下,兼容2003和2007,暂时没有添加图片处理功能. 所需jar包 http://pan.baidu.com/s/1sjPuWDR pack ...
- Java POI导入Excel文件
今天在公司需要做个导入Excel文件的功能,所以研究了一下,参考网上的一些资料总算是做出来了,在此记录一下防止以后忘记怎么弄. 本人用的是poi3.8,所以需要的JAR包如下: poi-3.8.jar ...
- 解决java POI导入Excel超时问题
由于要导入大量数据,后台会耗费很长时间,导致超时. 本项目前端request.js中设定的超时时间为150s. const service = axios.create({ baseURL: base ...
- java poi导入EXCEL xls文件代码
/** * */ package com.bn.car.common.report.excel; import java.io.FileInputStream; import java.io.IOEx ...
- java poi操作excel示例代码
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...
- java POI创建Excel示例(xslx和xsl区别 )
Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
随机推荐
- [原]Jenkins(十四)---jenkins示例:admin管理所有项目,新建用户只能看部分项目
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...
- Unity ---WidgetsUI CreateTileView Demo
以下教程基于:WidgetsUI 第三方扩展包 WidgtsUI 官网文档地址:https://ilih.ru/unity-assets/UIWidgets/docs/ 1.创建一个空GameObje ...
- 10.8Xadmin url注册
2018-10-8 16:45:31 这两天在弄我的服务器,就是是看各种教程 死活部署不好我的Django项目 博客网站 过几天再弄! 越努力,越幸运!永远不要高估自己! 通过两个方法,通过类变量找到 ...
- electron 主进程,和渲染进程的通信
ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进 ...
- zouxy09-图像卷积与滤波的一些知识点
原文地址 图像卷积与滤波的一些知识点 zouxy09@qq.com http://blog.csdn.net/zouxy09 之前在学习CNN的时候,有对卷积进行一些学习和整理,后来就烂尾了,现在稍微 ...
- 【每日一题】 UVA - 1589 Xiangqi 函数+模拟 wa了两天
题意:背景就是象棋, 题解:坑点1(wa的第一天):将军可以吃掉相邻的棋子,(然行列也写反了orz) 坑点2(wa的第二天):将军到马要反过来写,边界有误,并且第一次碰到的车才算(写到后来都忘了) # ...
- 查看ElasticSearch服务状态和结果的URL
1,查看es集群状态 http://ip:port/_cat/health?v 2,集群节点健康查看 http://ip:port/_cat/nodes?v 3,列出集群索引 http://ip:po ...
- MVC 实用架构设计(三)——EF-Code First(5):二级缓存
一.前言 今天我们来谈谈EF的缓存问题. 缓存对于一个系统来说至关重要,但是是EF到版本6了仍然没有见到有支持查询结果缓存机制的迹象.EF4开始会把查询语句编译成存储过程缓存在Sql Server中, ...
- centos7安装Apache
1.下载安装包wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz 2.解压tar zxvf httpd-2.4.37.ta ...
- 使用c#反射实现接口可视化调试页面
直接上代码,引用CommTools.dll.包括aspx显示页面和aspx.cs获取反射数据源代码 using System; using System.Collections.Generic; us ...