java解析Excel文件
一. 需要的第三方jar包
poi-3.17.jar
用于解析xls文件
poi-ooxml-3.17.jar
用于解析xlsx文件
junit-4.12.jar
单元测试工具
二. 使用方法
1. 主要用到的方法
a. 获取整个表格对象的方法
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
b. 获取sheet, row的方法都是使用迭代器
c. Cell对象常用方法:
- 设置单元格格式
cell.setCellType(CellType.STRING);
2. 创建解析类 ExcelParse.java
package com.mtl.parse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
public class ExcelParse {
@Test
public void myTest(){
ExcelParse parse = new ExcelParse();
parse.parseExcel(new File("D:\\MTL\\Desktop\\1.xls"));
}
/**
* 解析xls文件
* @param file
*/
private void parseExcel(File file) {
try {
//获取整个表格文件对象
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
//获取所有sheet对象
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
while (sheetIterator.hasNext()){
Sheet sheet = sheetIterator.next();
parseSheet(sheet);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 解析工作簿
* @param sheet
*/
private void parseSheet(Sheet sheet) {
//获取所有Row对象
Iterator<Row> iterator = sheet.iterator();
while (iterator.hasNext()){
parseRow(iterator.next());
}
}
/**
* 解析每行
* @param next
*/
private void parseRow(Row next) {
//获取所有Cell对象取值
Iterator<Cell> cellIterator = next.cellIterator();
while (cellIterator.hasNext()){
Cell cell = cellIterator.next();
cell.setCellType(CellType.STRING);
System.out.println("cell.value = " + cell.getStringCellValue());
}
}
}