博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 解析Excel(xls、xlsx两种格式)
阅读量:4651 次
发布时间:2019-06-09

本文共 3487 字,大约阅读时间需要 11 分钟。

Java 解析Excel(xls、xlsx两种格式)

一、环境

  JDK 1.8

二、JAR

  1.commons-collections4-4.1.jar

  2.poi-3.9-20121203.jar

  3.poi-examples-3.9-20121203.jar

  4.poi-excelant-3.9-20121203.jar

  5.poi-ooxml-3.9-20121203.jar

  6.poi-ooxml-schemas-3.9-20121203.jar

  7.poi-scratchpad-3.9-20121203.jar

  8.xmlbeans-2.3.0.jar

  注意:jar版本为3.9

三、主要API

  1.import org.apache.poi.ss.usermodel.Workbook,对应Excel文档;

  2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,对应xls格式的Excel文档;

  3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,对应xlsx格式的Excel文档;

  4.import org.apache.poi.ss.usermodel.Sheet,对应Excel文档中的一个sheet;

  5.import org.apache.poi.ss.usermodel.Row,对应一个sheet中的一行;

  6.import org.apache.poi.ss.usermodel.Cell,对应一个单元格。

四、示例

package poi;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DateUtil;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;public class Testpoi {    public static void main(String[] args) {        Workbook wb =null;        Sheet sheet = null;        Row row = null;        List
> list = null; String cellData = null; String filePath = "D:\\test.xlsx"; String columns[] = {"name","age","score"}; wb = readExcel(filePath); if(wb != null){ //用来存放表中数据 list = new ArrayList
>(); //获取第一个sheet sheet = wb.getSheetAt(0); //获取最大行数 int rownum = sheet.getPhysicalNumberOfRows(); //获取第一行 row = sheet.getRow(0); //获取最大列数 int colnum = row.getPhysicalNumberOfCells(); for (int i = 1; i
map = new LinkedHashMap
(); row = sheet.getRow(i); if(row !=null){ for (int j=0;j
map : list) { for (Entry
entry : map.entrySet()) { System.out.print(entry.getKey()+":"+entry.getValue()+","); } System.out.println(); } } //读取excel public static Workbook readExcel(String filePath){ Workbook wb = null; if(filePath==null){ return null; } String extString = filePath.substring(filePath.lastIndexOf(".")); InputStream is = null; try { is = new FileInputStream(filePath); if(".xls".equals(extString)){ return wb = new HSSFWorkbook(is); }else if(".xlsx".equals(extString)){ return wb = new XSSFWorkbook(is); }else{ return wb = null; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return wb; } public static Object getCellFormatValue(Cell cell){ Object cellValue = null; if(cell!=null){ //判断cell类型 switch(cell.getCellType()){ case Cell.CELL_TYPE_NUMERIC:{ cellValue = String.valueOf(cell.getNumericCellValue()); break; } case Cell.CELL_TYPE_FORMULA:{ //判断cell是否为日期格式 if(DateUtil.isCellDateFormatted(cell)){ //转换为日期格式YYYY-mm-dd cellValue = cell.getDateCellValue(); }else{ //数字 cellValue = String.valueOf(cell.getNumericCellValue()); } break; } case Cell.CELL_TYPE_STRING:{ cellValue = cell.getRichStringCellValue().getString(); break; } default: cellValue = ""; } }else{ cellValue = ""; } return cellValue; }}

 

转载于:https://www.cnblogs.com/lizm166/p/10643923.html

你可能感兴趣的文章