JAVA导入表格功能总结
表格结构:
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/>
<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导入表格功能总结的更多相关文章
- SpringCloud微服务实战——搭建企业级开发框架(三十):整合EasyExcel实现数据表格导入导出功能
批量上传数据导入.数据统计分析导出,已经基本是系统必不可缺的一项功能,这里从性能和易用性方面考虑,集成EasyExcel.EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项 ...
- java导入、导出Excel文件
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- 【转载】Java导入导出excel
转自:https://blog.csdn.net/jerehedu/article/details/45195359 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI ...
- java导入、导出
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- poi实现excel的导入导出功能
Java使用poi实现excel的导入导出功能: 工具类ExcelUtil,用于解析和初始化excel的数据:代码如下 package com.raycloud.kmmp.item.service.u ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...
- EasyUi通过POI 实现导出xls表格功能
Spring +EasyUi+Spring Jpa(持久层) EasyUi通过POI 实现导出xls表格功能 EasyUi界面: 点击导出按钮实现数据导入到xls表格中 第一步:修改按钮事件: @Co ...
- vue+element-ui的简洁导入导出功能
1.前段后台管理系统中数据展示一般都是用表格,表格会涉及到导入和导出;原生js导出excel2.导入是利用element-ui的Upload 上传组件; <el-upload class=&qu ...
- java导入导出下载Excel,xls文件(带下拉框)
/** * 导入excel文件 * 2014-7-23 * @return */ @RequiresPermissions("plug:product:caiwu:upload") ...
随机推荐
- 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 和 ...
- poj3070 单位矩阵(转移矩阵构造)+矩阵快速幂
太妙了..通过矩阵乘法来加速递推 #include<iostream> #include<cstring> #include<cstdio> using names ...
- 使用tensorflow构造隐语义模型的推荐系统
先创建一个reader.py,后面的程序将用到其中的函数. from __future__ import absolute_import, division, print_function impor ...
- Pycharm常用操作方法
1.调整字体大小 2.选择python编译器
- CentOS命令行向OSS上传文件或文件夹
下载地址:https://helpcdn.aliyun.com/document_detail/50452.html?spm=a2c4g.11186623.4.2.KyQak3 百度云盘:https: ...
- Angularjs 学习笔记-2017-02-05-初识Angular及app、model、controller、repeat指令和fileter、orderBy
ng-app 定义作用域,从作用域处开始执行ng命令指令 ng-model 数据绑定字符,用于双向数据绑定 ng-controller ng控制台,定义function name($scope)来 ...
- Linux系统监控命令及定位Java线程
1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...
- uva 11992
题意: 给定一个r*c(r<=20,r*c<=1e6)的矩阵,其元素都是0,现在对其子矩阵进行操作. 1 x1 y1 x2 y2 val 表示将(x1,y1,x2,y2)(x1<=x ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第八集之安装Nginx】
1,务必保证安装Nginx之前,所需的环境必须安装完备. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc ...
- 启动 ServiceFabric Windows服务报1053
Remote Procedure Call (RPC) Locator和 Windows Firewall是否启动. 以管理员身份运行PowerShell,输入Unregister-Scheduled ...