excel导入

angulis.js:

$upload.upload({

url: url,

params: {

//providerid: $scope.institutionDetail.providerCode

},

file: $scope.files

}).success(function (response) {

//todo

})

.error(function (r) {

//todo

})

或者用ajax也行,主要是用于提交一个文件。

controler:

@SecurityAccess(menuNodes = "", open = true)

@RequestMapping(value = "/hcpms/madagascar/uploadSqlParameterExcel.do", method = RequestMethod.POST)

@ResponseBody

public IntegrityResponseBean uploadParameterExcel(

@ModelAttribute InterityBlackAddRequestVO vo,

HttpServletRequest request) {

//获取文件信息:

List<MultipartFile> files = getParameterExcelFileList(request);

//封装为自己的DTO

List<HcpmsBiEtlJobParamsDTO> list = this.findParameterExcelHcpmsBiEtlSqlDTO(files, user);

}

1、findParameterExcelHcpmsBiEtlSqlDTO 方法:

private List<HcpmsBiEtlJobParamsDTO> findParameterExcelHcpmsBiEtlSqlDTO(

List<MultipartFile> files, UserDetails user) {

List<HcpmsBiEtlJobParamsDTO> list = new ArrayList<HcpmsBiEtlJobParamsDTO>();

if (files != null && files.size() > 0) {

for (MultipartFile file : files) {

parseParameterExcelToDTO(file, list, user);

}

}

return list;

}

2、getParameterExcelFileList方法:

private List<MultipartFile> getParameterExcelFileList(

HttpServletRequest request) {

MultipartResolver resolver = new CommonsMultipartResolver(request

.getSession().getServletContext());

MultipartHttpServletRequest multiRequest = resolver

.resolveMultipart(request);

List<MultipartFile> files = multiRequest.getFiles("file");

return files;

}

3、parseParameterExcelToDTO方法:

private void parseParameterExcelToDTO(MultipartFile file,

List<HcpmsBiEtlJobParamsDTO> list, UserDetails user) {

String username = user.getUsername();

InputStream is = null;

try {

is = file.getInputStream();

String fileName = file.getOriginalFilename();

String fileType = fileName.substring(fileName.lastIndexOf(".") + 1,

fileName.length());

if ("xlsx".equals(fileType)) {

XSSFWorkbook wb = new XSSFWorkbook(is);

XSSFSheet childSheet = wb.getSheetAt(0);

// readExcel

readParameterExcelToBean(childSheet, username, list);

} else if ("xls".equals(fileType)) {

HSSFWorkbook wb = new HSSFWorkbook(is);

HSSFSheet childSheet = wb.getSheetAt(0);

// readExcel

readParameterExcelToBean(childSheet, username, list);

}

} catch (Exception e) {

HttpProcessUtil.processException(e);

} finally {

try {

if (is != null) {

is.close();

}

} catch (IOException e) {

}

}

}

4、readParameterExcelToBean方法:

private void readParameterExcelToBean(HSSFSheet childSheet,

String username, List<HcpmsBiEtlJobParamsDTO> list) {

int rowNum = childSheet.getLastRowNum();

// j=1 跳过head部分

for (int j = 1; j <= rowNum; j++) {

HSSFRow row = childSheet.getRow(j);

HcpmsBiEtlJobParamsDTO currentBean = this.getParameterDTOFromRow(

row, username);

if (null != currentBean) {

list.add(currentBean);

}

}

}

5、getParameterDTOFromRow方法:

private HcpmsBiEtlJobParamsDTO getParameterDTOFromRow(XSSFRow row,

String opertionUser) {

if (row == null) {

return null;

}

HcpmsBiEtlJobParamsDTO bean = new HcpmsBiEtlJobParamsDTO();

int cellNum = row.getLastCellNum(); // 每行有多少列(格)

for (int k = 0; k < cellNum; k++) {

if (row.getCell(k) == null) {

continue;

}

String value = row.getCell(k).toString();

if (!StringUtils.hasText(value)) {

continue;

}

// setBeanFir

setParameterBeanFir(bean, value, k);

}

return bean;

}

6、setParameterBeanFir方法:

private void setParameterBeanFir(HcpmsBiEtlJobParamsDTO bean, String value,

int k) {

if (k == 0) { //

bean.setParamsType(value);

}

if (k == 1) { //

bean.setJobCode(value);

}

if (k == 2) { //

bean.setParamsName(value);

}

if (k == 3) { //

bean.setParamsValue(value);

}

if (k == 4) { //

bean.setParamsInfo(value);

}

if (k == 5) { //

bean.setIsValid(value);

}

}

7、HcpmsBiEtlJobParamsDTO 实体类:

public class HcpmsBiEtlJobParamsDTO extends BaseDTO  {

private static final long serialVersionUID = 1L;

// VARCHAR2(2) idEtlParameter

private String idEtlParameter;

// VARCHAR2(2) 参数类型(0:公有,1:私有)

private String paramsType;

// VARCHAR2(20)  JOB编码

private String jobCode;

// VARCHAR2(20) 参数名称

private String paramsName;

// VARCHAR2(1024)  参数值(符合PL/SQL格式)

private String paramsValue;

// VARCHAR2(2) N 是否有效[0-有效,1-无效]

private String isValid;

// VARCHAR2(200) 参数说明

private String paramsInfo;

// VARCHAR2(100) N 创建人

private String createdBy;

// DATE N SYSDATE 创建时间

private Date dateCreated;

// VARCHAR2(100) N 修改人

private String updatedBy;

// DATE N SYSDATE 修改时间

private Date dateUpdated;

}

时间: 2024-10-25 14:30:44

excel导入的相关文章

将Excel导入DataGridView 中的"select * from [Sheet1$]"中[ ]里面表单名的动态获取

Sheet1$是Excel默认的第一个表名,如果改动:select * from [Sheet1$]"将查询失败,因此应根据选择自动获取excel表名: 1 OpenFileDialog ofd = new OpenFileDialog(); //选择文件路径 2 ofd.Title = "Excel文件"; 3 ofd.FileName = ""; 4 ofd.Filter = "Excel文件(*.xls)| *.xls"; 5 s

.net 自己写的操作Excel 导入导出 类(以供大家参考和自己查阅)

由于现在网页很多都关系到Excel 的操作问题,其中数据的导入导出更是频繁,作为一个菜鸟,收集网上零散的知识,自己整合,写了一个Excel导入到GridView ,以及将GridView的数据导出到EXCEL的类方法,以供参考和方便自己以后查阅. 1 #region 引用部分 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Web; 6 using System.Dat

Excel导入导出的业务进化场景及组件化的设计方案(转)

1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候,再分享分享. 话说最近外面IT行情飞涨还咋的,人都飞哪去了呢,听说各地的军情都进入紧急状态了. 回归下正题,今天就抽点时间,写写技术文,和大伙分享一下近年在框架设计上的取的一些技术成果. 2:项目背景 在针对运营商(移动.联通.电信.铁塔)的信息类的系统中,由于相关的从业人员习惯于Excel的办公

Java实现Excel导入数据库,数据库中的数据导入到Excel

实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java.sql.Co

Excel导入oracle库

Excel导入oracle库 ? 建表 ? /*==============================================================*/ /* DBMS name: ORACLE Version 10gR2 */ /* Created on: 2017/9/18/周一 14:19:00 */ /*==============================================================*/ ? ? drop table D

利用反射实现通用的excel导入导出

如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 1 package com.bean; 2 3 public class Book { 4 private int id; 5 private String name; 6 private String type; 7 // public int a; 8 9 public String getType() { 10 System.ou

excel导入 HSSFWorkbook和XSSFWorkbook

excel导入 excel版本有03版本和07版本的区别,文件后缀名分别为.xls和.xlsx.它们对应的POI中的Workbook也是不同的,分别是HSSFWorkbook和XSSFWorkbook: 对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息. org.apache.poi.openxml4j.exceptions.InvalidOperationException org.apache.poi.poifs.filesystem.OfficeXmlFil

excel导入导出优化

对于上一篇excel中出现的问题,在excel导入导出中都做了优化.还是eclipse+jdk1.8,但是这个项目是一个web项目,需要配合Tomcat服务器,并且使用了SSH框架, I/O操作过多 首先,对于I/O操作过多,那么就不像之前一样,一条一条的添加或者更新;而且凑齐一堆,也就是一个list集合,然后统一的批量保存. 使用SessionFactory获取当前的session,然后调用session的persist方法,保存实体.只是设置了一个批量的量值.每到30条数据,就将缓存同步到数

技巧一:Delphi XE3 Excel导入数据到StringGrid

procedure TDataEditDrFrm.btn8Click(Sender: TObject);varexcelx,excely:string;ExcelApp:Variant;workBook:OleVariant;excelRowCount,excelColumnCount:longint;i,j,row,row1:integer; begin row1:=1; pb1.Min:=0; dlgOpen1.Filter:='Excel文件|*.xls|*.xlsx'; if dlgOp

将Excel [导入到数据库] or 将数据 [导入到Excel]

将Excel导入到数据库实现如下: 前台代码: @model IEnumerable<Model.Student> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script