表格结构:

SheetName:sheet名称(辅材采购申请单)

RowNum:行数

FirstCellNum/LastCellNum:第一竖列/最后一竖列(从0开始),例:getCell(0) = 辅材编号

前台到后台上传操作:

HTML:

<!-- 导入文件弹层  -->
<div id="assetUploadDialog" class="pop" style="visibility: hidden;">
<form id="assetUploadForm" method="post" enctype="multipart/form-data">
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="file" name="assetUpload" />
<font color="red">请按照模板导入辅材*</font>
<br/>
</form>
</div>

js:

//上传文件
function assetUploadFile(){
MaskUtil.mask('正在导入,请等待...');
var url= context_path + '/auxiliary/auxiliaryImport.do';
$('#assetUploadForm').form('submit',{
url:url,
success:function(ret){
var r = JSON.parse(ret);
$.messager.alert('消息',r.msg);
if(r.result){
$('#assetUploadDialog').dialog('close');
loadDataGrid();//重新获取数据加载页面
MaskUtil.unmask();
}else{
MaskUtil.unmask();
}
}
});
}

Action:

private File assetUpload; // 配置文件上传

 public File getAssetUpload() {
return assetUpload;
} public void setAssetUpload(File assetUpload) {
this.assetUpload = assetUpload;
} /**
* 导入采购单
*/
public void auxiliaryImport(){ Map<String, Object> map = new HashMap<String, Object>();
try {
InputStream in = new FileInputStream(assetUpload);
Workbook wb = new XSSFWorkbook(in);
int auxiliaryIndex = 0;
for(int i = 0; i < wb.getNumberOfSheets(); i++){
if(wb.getSheetName(i).equals("辅材采购申请单")){
auxiliaryIndex = i;
}
}
Sheet sheet1 = wb.getSheetAt(auxiliaryIndex);
//1.声明sql数组
String [] sqls =new String [sheet1.getLastRowNum()];
String [] sqlFlowArr =new String [sheet1.getLastRowNum()];
int indexss = 0;
int indexFlow = 0;
int sqlflag = 0; if ((wb.getSheetName(auxiliaryIndex).equals("辅材采购申请单"))) {
for (Row row : sheet1) {
if (row.getRowNum() >= 1) { boolean flag = false;
for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
if (row.getCell(c) != null && row.getCell(c).getCellType() != HSSFCell.CELL_TYPE_BLANK){
flag = true;
}
}
if(flag){
Auxiliary auxiliary = new Auxiliary();
auxiliary.setCreatedby(user.getUname()); // 辅材id
if(row.getCell(0)!=null){
auxiliary.setId(Double.valueOf(row.getCell(0).toString().trim()).intValue());
} //等等其他列
//保存对象操作
auxiliaryService.getInsertSql(auxiliary);
}
} else {
map.put("msg", "导入模板有误,请检查后重新上传!");
map.put("result", false);
}
map.put("msg", "成功导入或更新"+sqlflag+"条数据!");
map.put("result", true);
} catch (Exception e) {
map.put("msg", "数据异常,请检查数据是否正确录入!");
map.put("result", false);
e.printStackTrace();
} this.writeJson(map);
}

JAVA导入表格功能总结的更多相关文章

  1. SpringCloud微服务实战——搭建企业级开发框架(三十):整合EasyExcel实现数据表格导入导出功能

      批量上传数据导入.数据统计分析导出,已经基本是系统必不可缺的一项功能,这里从性能和易用性方面考虑,集成EasyExcel.EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项 ...

  2. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  3. 【转载】Java导入导出excel

    转自:https://blog.csdn.net/jerehedu/article/details/45195359 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI ...

  4. java导入、导出

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  5. poi实现excel的导入导出功能

    Java使用poi实现excel的导入导出功能: 工具类ExcelUtil,用于解析和初始化excel的数据:代码如下 package com.raycloud.kmmp.item.service.u ...

  6. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  7. EasyUi通过POI 实现导出xls表格功能

    Spring +EasyUi+Spring Jpa(持久层) EasyUi通过POI 实现导出xls表格功能 EasyUi界面: 点击导出按钮实现数据导入到xls表格中 第一步:修改按钮事件: @Co ...

  8. vue+element-ui的简洁导入导出功能

    1.前段后台管理系统中数据展示一般都是用表格,表格会涉及到导入和导出;原生js导出excel2.导入是利用element-ui的Upload 上传组件; <el-upload class=&qu ...

  9. java导入导出下载Excel,xls文件(带下拉框)

    /** * 导入excel文件 * 2014-7-23 * @return */ @RequiresPermissions("plug:product:caiwu:upload") ...

随机推荐

  1. dbcp连接池出现的问题java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z

    解决方案:mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 .    5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 ...

  2. poj3070 单位矩阵(转移矩阵构造)+矩阵快速幂

    太妙了..通过矩阵乘法来加速递推 #include<iostream> #include<cstring> #include<cstdio> using names ...

  3. 使用tensorflow构造隐语义模型的推荐系统

    先创建一个reader.py,后面的程序将用到其中的函数. from __future__ import absolute_import, division, print_function impor ...

  4. Pycharm常用操作方法

    1.调整字体大小 2.选择python编译器

  5. CentOS命令行向OSS上传文件或文件夹

    下载地址:https://helpcdn.aliyun.com/document_detail/50452.html?spm=a2c4g.11186623.4.2.KyQak3 百度云盘:https: ...

  6. Angularjs 学习笔记-2017-02-05-初识Angular及app、model、controller、repeat指令和fileter、orderBy

    ng-app   定义作用域,从作用域处开始执行ng命令指令 ng-model 数据绑定字符,用于双向数据绑定 ng-controller ng控制台,定义function name($scope)来 ...

  7. Linux系统监控命令及定位Java线程

    1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...

  8. uva 11992

    题意: 给定一个r*c(r<=20,r*c<=1e6)的矩阵,其元素都是0,现在对其子矩阵进行操作. 1 x1 y1 x2 y2 val 表示将(x1,y1,x2,y2)(x1<=x ...

  9. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第八集之安装Nginx】

    1,务必保证安装Nginx之前,所需的环境必须安装完备.  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc ...

  10. 启动 ServiceFabric Windows服务报1053

    Remote Procedure Call (RPC) Locator和 Windows Firewall是否启动. 以管理员身份运行PowerShell,输入Unregister-Scheduled ...