快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

【Java】【46】导入Excel到数据库

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

   com.bf.base.utils;

导入 com.bf.base.entity.DripAward;

导入 com.bf.base.params.Result;

导入 org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel。 * ;

导入 org.apache.poi.xssf.usermodel.XSSFWorkbook;

导入 org.springframework.web.multipart.MultipartFile;

导入 java.io.FileNotFoundException;

导入 java.io.IOException;

导入 java.io.InputStream;

导入 java.text.DecimalFormat;

导入 java.util.ArrayList;

导入 java.util.Calendar;

导入 java.util.List;

public ReadExcelUtil {

公共 静态结果\ lt ; \ gt; readDripAwardExcel(MultipartFile文件){

结果结果 = new 结果\ lt; \ gt; ();

InputStream是 = null ;

工作簿wb = null ;

字符串fileName = file.getOriginalFilename();

字符串fileType = fileName.substring(fileName.lastIndexOf("。")+ 1 ,fileName.length());

试试

是 = file.getInputStream();

如果(fileType.equals(" xls" )){

wb = HSSFWorkbook(是);

} 其他 if (fileType.equals(" xlsx" )){

wb = XSSFWorkbook(是);

} 其他

返回 new 结果\ lt; \ gt; (Result.FAIL,"读取的不是Excel文件", null null );

}

int sheetSize = wb.getNumberOfSheets(); // 多少个工作表页面

如果(sheetSize \ gt; = 2 ){

返回 new 结果\ lt; \ gt; (Result.FAIL,"请检查Excel中的页数", null null );

}

工作表工作表 = wb.getSheetAt(0 );

结果 = sheetData2List(sheet); // 要收集的键,工作表数据

} catch (FileNotFoundException e){

e.printStackTrace();

} catch (IOException e){

e.printStackTrace();

} catch (异常e){

e.printStackTrace();

}

返回 结果;

}

// 获取数据

私有 静态 结果sheetData2List(表工作表){

结果结果 = new 结果\ lt; \ gt; ();

列表 \ lt;奖励 awards = new ArrayList \ lt; \ gt; ();

int CELL_SIZE = 3; // Excel修复了三列(代码,金额)

int rowSize = sheet.getLastRowNum()+ 1 ;

for int j = 0; j \ lt; rowSize; j ++){// 读取每一行

Row row = sheet.getRow(j);

如果(行== null ){

继续 ;

}

如果(row.getLastCellNum()!= CELL_SIZE){

result.setCode( 2 );

result.setMsg(" No." + j +"行数据异常,请在上传之前进行检查!" );

返回 结果;

}

如果(j == 0 ){

继续 ;

} 其他

DripAward rowObj = DripAward();

for int k = 0; k \ lt; CELL_SIZE; k ++){// 获取列数据

单元格单元格= row.getCell(k);

字符串值 = getCellFormatValue(单元格);

开关 (k){

情况 0 :

rowObj.setCode(AESUtil.encrypt(value));

打破 ;

情况 1 :

rowObj.setAmount(Double.parseDouble(value));

打破 ;

情况 2 :

rowObj.setClassify(Integer.parseInt(value));

打破 ;

默认值 :

打破 ;

}

}

awards.add(rowObj);

}

}

result.setCode( 0 );

result.setData(奖项);

返回 结果;

}

// 获取列数据

私有 静态 字符串getCellFormatValue(Cell细胞) {

字符串单元格值 ="" ;

如果(单元格!= null ){

CellType cellType = cell.getCellTypeEnum();

开关 (cellType){

大小写 NUMERIC:{

如果(String.valueOf(cell.getNumericCellValue())。indexOf(" E")==-1 ){

cellvalue = String.valueOf(cell.getNumericCellValue());

} 其他

单元格值 = DecimalFormat("#" )。格式(cell.getNumericCellValue());

}

打破 ;

}

情况 STRING:

cellvalue = cell.getRichStringCellValue()。 getString();

打破 ;

默认值 :

cellvalue ="-" ;

}

}

返回 单元格值;

}

}

相关推荐

 
QQ在线咨询
售前咨询热线
QQ1922638