package com.oadmin.superapp.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
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 com.oadmin.superapp.vo.OrderVO;
public class ReadExcle {
public static void main(String[] args) {
try {
List<OrderVO> list= readXls(new File("D://未发货订单列表20170831.xls"));
System.out.println(list.get(0).getAppId());
} catch (IOException e) {
e.printStackTrace();
}
}
public static List<OrderVO> readXls(File file) throws IOException {
List<OrderVO> list = new ArrayList<OrderVO>();
try{
//XSSF和HSSF虽然在不同的包里,但却引用了同一接口Workbook,可以用下面判断
Workbook wb = null;
FileInputStream fi = new FileInputStream(file);
/* if (systemObjFileFileName.toLowerCase().endsWith("xls")) {
}else if(systemObjFileFileName.toLowerCase().endsWith("xlsx")) {
wb = new XSSFWorkbook(fi);
}*/
wb = new HSSFWorkbook(fi);
Sheet sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum()+1;
//i 从1开始表示第一行为标题 不包含在数据中
for(int i=1;i<rowNum;i++){
OrderVO systemObject = new OrderVO();
Row row = sheet.getRow(i);
int cellNum = row.getLastCellNum();
for(int j=0;j<cellNum;j++){
Cell cell = row.getCell(j);
String cellValue = null;
if(cell != null){
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = cell.getStringCellValue();
}
switch(j){//通过列数来判断对应插如的字段
//数据中不应该保护ID这样的主键记录
case 0 : systemObject.setOrder(cellValue);break;
case 1 : systemObject.setCompany(cellValue);break;
case 2 : systemObject.setOrder_number(cellValue);break;
case 3 : systemObject.setAppId(UUID.fromString(cellValue));break;
case 4 : systemObject.setOrderId(UUID.fromString(cellValue));break;
}
}
list.add(systemObject);
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
}