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") ...
随机推荐
- java web----URL
简单使用 import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; im ...
- 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 和 ...
- C++ Primer 笔记——变量
1. 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来代替. 2.使用列表初始化内置类型的变量时,如果初始值存在丢失信息的风险,则编译器将报错 ...
- Linux桌面环境安装matlab并创建快捷方式
安装matlab sudo mkdir -p /mnt/matlab sudo mount -t auto -o loop /home/chris/Downloads/2016b_linux/R201 ...
- 提高VS项目的压缩文件大小
对于.NET项目,如果将编译方式由Debug改为Release,使用压缩软件压缩项目文件时可以大大减少压缩文件的大小,具体原因待查.
- mysql把查询结果集插入到表理
把表B的内容插入到表A INSERT INTO 1111_0 SELECT*FROM report_0 把查询结果集插入到表中 insert into A(a,b,c) select from B(a ...
- 构建简单的json树形菜单
json结构: var Menu = [{ tit:"一级菜单", submenu:[{ tit:"二级菜单", url:"", func: ...
- Python初次安装使用教程
Python官网: https://www.python.org/downloads/ 当前版本为3.7.0 下载(64位系统)exe文件进行安装. 双击安装运行 选择自定义安装路径 ...
- mysql时间延时注入案例
通过Burpsuite结合sqlmap发现如下接口存在时间盲注
- Python 实现红绿灯
一.通过Event来实现两个或多个线程间的交互,下面是一个红绿灯的例子,即起动一个线程做交通指挥信号灯,一个线程做车辆,车辆行驶按红灯停,绿灯行的规则. #!/usr/bin/python # -*- ...