package com.csf.weui.repository;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.aug3.sys.rs.response.RespType;
import com.google.common.collect.Lists;
/**
* @author fenglei.ma 2017/11/21 13:34
*/
public class UploadRepository {
private static final Logger logger = Logger.getLogger(UploadRepository.class);
public String analysis(){
try{
String fileName = "C:\\Users\\fenglei.ma\\Desktop\\上传\\上传测试文件\\announcement_fund表主键.xls";
File file = new File(fileName);
InputStream is = new FileInputStream(file);
boolean isExcel2003 = fileName.toLowerCase().endsWith("xls")?true:false;
Map<Integer, List<String>> readFromExcel = readFromExcel(isExcel2003, is);
logger.info(readFromExcel);
}catch(Exception e){
e.printStackTrace();
logger.error(e, e);
}
return null;
}
@SuppressWarnings({"deprecation", "resource" })
public Map<Integer,List<String>> readFromExcel(boolean isExcel2003, InputStream in) throws IOException{
Workbook readWorkBook=null;
// 判断文件是2003前的版本还是2007的版本,然后对应调用HSSF或XSSF来读取。
if(isExcel2003){
readWorkBook=new HSSFWorkbook(in);
logger.info("-> HSSFWorkbook");
}else{
readWorkBook=new XSSFWorkbook(in);
logger.info("-> XSSFWorkbook");
}
Map<Integer,List<String>> map=new LinkedHashMap<>();
Iterator<Sheet> sheet_iterator = readWorkBook.iterator();
int physicalNumberOfCells = 0;//多少列
for(;sheet_iterator.hasNext();){
Sheet readSheet = sheet_iterator.next();
Iterator<Row> iterator = readSheet.iterator();
// 遍历每一行
for(;iterator.hasNext();){
List<String> list= Lists.newArrayList();
Row row = iterator.next();
if(physicalNumberOfCells == 0){
physicalNumberOfCells = row.getPhysicalNumberOfCells();
}
Cell cell = row.getCell(0);
if(cell == null){continue;}
cell.setCellType(Cell.CELL_TYPE_STRING);
Integer row_number = row.getRowNum();
for(int k=0;k<physicalNumberOfCells;k++){ // 循环遍历每一列
cell = row.getCell(k);
if(cell == null){
list.add(null);
continue;
}
cell.setCellType(Cell.CELL_TYPE_STRING);
String cell_value = cell.getStringCellValue(); // 得到值
list.add(cell_value);
}
map.put(row_number,list);
}
}
return map;
}
/* <!-- excel -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>*/
}