表格结构:

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. node.js 的热更新

    1.安装 npm i supervisor -gd 2.运行 supervisor server.js //server.js 是你自己的服务的js文件

  2. Git使用一:git客户端安装与创建用户

    1.下载并安装Git和图形客户端TortoiseGit Git官网:https://gitforwindows.org/ TortoiseGit官网: https://tortoisegit.org/ ...

  3. git push -u 用法

    在我们第一次提交git的时候: 发现上面用了这个-u参数,也没作解释,特意搜索了下这个-u的用法,加了参数-u后,以后即可直接用git push 代替git push origin master gi ...

  4. MySQL源码安装一键脚本

    #红色部分根据自己的需求来定义#!/bin/bash #卸载系统自带的Mysql /bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps /bi ...

  5. 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)

    论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...

  6. JAVA 代码中使用中文的办法

    在编译代码中插入 -encoding UTF-8 示例: javac -encoding UTF-8 *.java

  7. Tensorflow:DCGAN生成手写数字

    参考地址:https://blog.csdn.net/miracle_ma/article/details/78305991 使用DCGAN(deep convolutional GAN):深度卷积G ...

  8. 20165323 预备作业3 Linux安装及学习

    一.Linux安装 首先我按照老师所给的步骤下载了VirtualBox 5.2.6和Ubuntu 16.04.3.有流程下载很简单,但是在下载的过程中还是出现了一些问题. 1.VirtualBox 只 ...

  9. 使用layer弹出Ueditor实现父子传值

    Layear的代码:     function tankuang() {        layer.open({            type: 2,            title: false ...

  10. 【第一部分】07Leetcode刷题

    二.寻找旋转排序数组中的最小值 题目:153. Find Minimum in Rotated Sorted Array C++ Soution 1: class Solution { public: ...