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;

}





      本文转自tianjian_0913 51CTO博客,原文链接:http://blog.51cto.com/tianjian/1892584,如需转载请自行联系原作者




相关文章
|
6月前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
271 0
|
6月前
|
关系型数据库 MySQL 区块链
将excel表格数据导入Mysql新建表中
将excel表格数据导入Mysql新建表中
|
5月前
|
SQL 存储 数据库
excel导入sql数据库
将Excel数据导入SQL数据库是一个相对常见的任务,可以通过多种方法来实现。以下是一些常用的方法: ### 使用SQL Server Management Studio (SSMS) 1
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
4月前
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
47 2
|
3月前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
112 0
|
5月前
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
1082 1
|
4月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
53 0
|
4月前
|
JSON JavaScript 数据格式
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
339 0

热门文章

最新文章

下一篇
无影云桌面