poi实现Excel文件的读取
1.前端代码
$("#upload").on('click', function() {
var formData = new FormData();
var name = $("#uploadFile").val();
formData.append("fileupload", $("#articleImageFile")[0].files[0]);
formData.append("name", name); //这个地方可以传递多个参数
if(name == null || name == ''){
alert("请选择上传文件");
}
$.ajax({
type: 'post',
url: commenUrl + "/fileUpload",
async: false,
data: formData,
// 告诉jQuery不要去处理发送的数据
processData: false,
// 告诉jQuery不要去设置Content-Type请求头
contentType: false,
beforeSend: function() {
console.log("正在进行,请稍候");
},
success: function(data) {
if(data.code == 0) {
alert("导入成功");
$("#myModal").modal('hide');//隐藏模态框
}else {
alert("导入失败");
};
}
});
});
2.控制层代码
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
@ResponseBody
public void fileUpload(@RequestParam("fileupload")MultipartFile fileupload, HttpServletRequest request,
HttpServletResponse response, ApiJsonResult result) {
try {
result = uploadService.fileUpload(fileupload,result);
} catch (Exception e) {
e.printStackTrace();
result.setCode(StatusCodeEnum.EXTREMELY.getCode());
result.setMsg(StatusCodeEnum.EXTREMELY.getDesc());
}
JsonWebPrintUtils.printApiResult(request, response, result);
}
3.实现代码
excel中存在纯数字的数据时,可以使用getNumericCellValue()取值,或者使用setCellType(Cell.CELL_TYPE_STRING)统一设置为字符串格式读取。实际应用中可根据实际情况在读取过程中对读取到的数据进行校验返回错误信息到客户端。
@Override
public ApiJsonResult fileUpload(MultipartFile fileupload, ApiJsonResult result) throws IOException{
//获取文件名
String fileName = fileupload.getOriginalFilename();
Workbook workbook = getWorkbook(fileName,fileupload);
if(fileName.endsWith(XLS)) {
//2003
workbook = new HSSFWorkbook(fileupload.getInputStream());
}else if(fileName.endsWith(XLSX)) {
//2007
workbook = new XSSFWorkbook(fileupload.getInputStream());
}
//创建工作表sheet
Sheet sheet = this.getSheet(workbook, 0);
//获取sheet中数据的行
int rows = sheet.getPhysicalNumberOfRows();
List<UploadTest> lsit = new ArrayList<>();//用于存放读取到的数据
for(int i=1;i<row.length;i++){//从第二行开始读取数据
Row row = sheet.getRow(i);
row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);//设置读取数据类型为string
row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);//设置读取数据类型为string
String value1 = row.getCell(0).getStringCellValue();//第一列的值
String value2 = row.getCell(1).getStringCellValue();//第二列的值
UploadTest test = new UploadTest(); //创建实体类接受值
test.setPig(value1);
test.setDog(value2);
list.add(test);
}
//将数据写入数据库
...............省略
return this.getCarAndDeviceBindData(sheet,result);
}
poi实现Excel文件的读取的更多相关文章
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复 ...
- Java使用POI操作Excel文件
1.简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式文件读和写的功能. 2.依赖的jar包 <!-- ex ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)
将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...
- 条形码的应用三-----------从Excel文件中读取条形码
条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- 【asp.net】asp.net实现上传Excel文件并读取数据
#前台代码:使用服务端控件实现上传 <form id="form1" runat="server"> <div> <asp:Fil ...
- POI生成EXCEL文件
POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...
随机推荐
- JavaFX(Maven 方式)
运行界面第一种方式 运行界面第二种方式 参考文献 https://github.com/AlmasB/JavaFX11-example
- git取别名配置
已经配置的别名 $ git config --global alias.st status $ git config --global alias.co checkout $ git config - ...
- Windows下pip 离线包安装
pip在线安装十分方便,有时候某些服务器并没有直接联网,需要下载好安装包上传到服务器上进行安装,不经常用,还是有点小麻烦的. 安装Python之后,将下载好的安装包包放在Python安装的根目录下使用 ...
- [原创] debian 9.3 搭建seafile企业私有网盘
[原创] debian 9.3 搭建seafile企业私有网盘 需求是这样的, 个人疲惫于 "成为大伙的文件中转站" ,公司不管大大小小的文件,都要打电话过来“转个xx文件”.“帮 ...
- FreeMarker案例
- Android studio使用android:style/Theme.Dialog报错:You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
查找原因是在activity java代码部分继承了compatactivity public class DialogActivity extends AppCompatActivity 但是在An ...
- haproxy监控页面添加及参数简介(转)
环境: [root@localhost 13:55:31 haproxy]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@loca ...
- 【笔记】Python基础七:正则表达式re模块
一,介绍 正则表达式(RE)是一种小型的,高度专业化的编程语言,在python中它内嵌在python中,并通过re模块实现.正则表达式模式被编译成一系列的字节码,然后由C编写的匹配引擎执行. 字符匹配 ...
- ORACLE升级11g以上之前版本的wm_concat()函数失效
先执行: create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum_string ), static function ...
- 二十二、Command 命令模式
原理: 时序图: 代码清单: command.Command public interface Command { void execute(); } command.MacroCommand pub ...