版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_31032177/article/details/78444015
实体类
public class ali {
private String FSTR_SCATSID;
private String FSTR_DESC;
private String FSTR_DATE;
private String NUM_TIME;
private String MIN_TIME;
private String NUMOF_ALARMS;
private String UTIM;
public String getFSTR_SCATSID() {
return FSTR_SCATSID;
}
public void setFSTR_SCATSID(String fSTR_SCATSID) {
FSTR_SCATSID = fSTR_SCATSID;
}
public String getFSTR_DESC() {
return FSTR_DESC;
}
public void setFSTR_DESC(String fSTR_DESC) {
FSTR_DESC = fSTR_DESC;
}
public String getFSTR_DATE() {
return FSTR_DATE;
}
public void setFSTR_DATE(String fSTR_DATE) {
FSTR_DATE = fSTR_DATE;
}
public String getNUM_TIME() {
return NUM_TIME;
}
public void setNUM_TIME(String nUM_TIME) {
NUM_TIME = nUM_TIME;
}
public String getMIN_TIME() {
return MIN_TIME;
}
public void setMIN_TIME(String mIN_TIME) {
MIN_TIME = mIN_TIME;
}
public String getNUMOF_ALARMS() {
return NUMOF_ALARMS;
}
public void setNUMOF_ALARMS(String nUMOF_ALARMS) {
NUMOF_ALARMS = nUMOF_ALARMS;
}
public String getUTIM() {
return UTIM;
}
public void setUTIM(String uTIM) {
UTIM = uTIM;
}
@Override
public String toString() {
return "ali [FSTR_SCATSID=" + FSTR_SCATSID + ", FSTR_DESC="
+ FSTR_DESC + ", FSTR_DATE=" + FSTR_DATE + ", NUM_TIME="
+ NUM_TIME + ", MIN_TIME=" + MIN_TIME + ", NUMOF_ALARMS="
+ NUMOF_ALARMS + ", UTIM=" + UTIM + "]";
}
}
读取excel的流程
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
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.ss.usermodel.WorkbookFactory;
public class ReadExcelUtils {
//sheetIndex:读sheet几表,rowIndex:第几行开始读
public List<List<String>> readExcelBySheetIndex(String file, int sheetIndex, int rowIndex) {
List<List<String>> list = new ArrayList<List<String>>();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
//File excelFile = file; // 创建文件对象
try {
// 文件流
FileInputStream is = new FileInputStream(file);
// 支持Excel 2003 2007
Workbook workbook = WorkbookFactory.create(is);
int sheetCount = workbook.getNumberOfSheets(); // Sheet的数量
int cellCount = 0;
// 遍历每个Sheet
Sheet sheet = workbook.getSheetAt(sheetIndex);
int rowCount = sheet.getPhysicalNumberOfRows(); // 获取总行数
// 遍历每一行
for (int r = rowIndex; r < rowCount; r++) {
Row row = sheet.getRow(r);
if (row == null) {// 若为null,表明中间有一行为空值,但是获得总行数是没有获得这一行,所以rowCount+1
rowCount++;
continue;
}
if (cellCount == 0){
cellCount = row.getPhysicalNumberOfCells(); // 获取总列数
}
List<String> rows = new ArrayList<String>();
// 遍历每一列
for (int c = 0; c < cellCount; c++) {
Cell cell = row.getCell(c);
if (cell == null) {
rows.add("");
continue;
}
int cellType = cell.getCellType();
String cellValue = null;
switch (cellType) {
case Cell.CELL_TYPE_STRING: // 文本
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC: // 数字、日期
if (HSSFDateUtil.isCellDateFormatted(cell)) {
cellValue = fmt.format(cell.getDateCellValue()); // 日期型
} else {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 将数字转成字符串
cellValue = cell.getStringCellValue();
}
break;
case Cell.CELL_TYPE_BOOLEAN: // 布尔型
cellValue = String.valueOf(cell
.getBooleanCellValue());
break;
case Cell.CELL_TYPE_BLANK: // 空白
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_ERROR: // 错误
cellValue = String
.valueOf(cell.getErrorCellValue());
break;
case Cell.CELL_TYPE_FORMULA: // 公式
// 用数字方式获取公式结果,根据值判断是否为日期类型
double numericValue = cell.getNumericCellValue();
if (HSSFDateUtil.isValidExcelDate(numericValue)) { // 如果是日期类型
cellValue = fmt.format(cell.getDateCellValue());
} else {
cellValue = String.valueOf(numericValue);
}
break;
default:
cellValue = "";
}
rows.add(cellValue);
}
list.add(rows);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}
解析类
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class drexcels {
public static void main(String[] args) throws Exception {
String flie;//excel文件的地址ַ
List<List<String>> list = new ArrayList<List<String>>();
flie="src\\ali.xlsx";//excel文件的地址
ReadExcelUtils readExcel=new ReadExcelUtils();
list = readExcel.readExcelBySheetIndex(flie,0,0);// 读sheet1 第1行开始读数据,下标从0开始
String array[][]= new String[list.size()][];
int i=0;
for(List<String> attribute : list) {
array[i]=attribute.toArray(new String[0]);
i++;
}
List<ali> list1 =new ArrayList<ali>();
for (int j = 1; j < array.length; j++) {
ali a = new ali();
a.setFSTR_SCATSID(array[j][0]);
a.setFSTR_DESC(array[j][1]);
a.setFSTR_DATE(array[j][2]);
a.setNUM_TIME(array[j][3]);
a.setMIN_TIME(array[j][4]);
a.setNUMOF_ALARMS(array[j][5]);
a.setUTIM(array[j][6]);
list1.add(a);
}
for (ali attribute : list1) {
System.out.println(attribute);
}
}
}
细节如解析txt
[http://blog.csdn.net/sinat_31032177/article/details/78443635]
需要添加jar包
运行结果如下