java 解析 excel 文件的方法
这里有新鲜出炉的 Java 并发编程示例, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 java 解析 excel 文件的方法, 这里整理相关的代码, 具有一定的参考价值, 感兴趣的小伙伴们可以参考一下
建立工程前需要导入 POI 包 POI 相关 jar 包下载地址: http://poi.apache.org/download.html
1. 解析. xlsx 后缀名的的 EXCEL 文件:
- package com.shuai.hello;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.xssf.usermodel.XSSFCell;
- import org.apache.poi.xssf.usermodel.XSSFRow;
- import org.apache.poi.xssf.usermodel.XSSFSheet;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- public class ReadExcel {
- public static void main(String[] args) throws IOException {
- //File file = new File("C:/Users.xlsx");
- InputStream stream = new FileInputStream("C:/Users.xlsx");
- XSSFWorkbook xssfWorkbook = new XSSFWorkbook(stream);
- XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
- int rowstart = xssfSheet.getFirstRowNum();
- int rowEnd = xssfSheet.getLastRowNum();
- for (int i = rowstart; i <= rowEnd; i++) {
- XSSFRow row = xssfSheet.getRow(i);
- if (null == row) continue;
- int cellStart = row.getFirstCellNum();
- int cellEnd = row.getLastCellNum();
- for (int k = cellStart; k <= cellEnd; k++) {
- XSSFCell cell = row.getCell(k);
- if (null == cell) continue;
- switch (cell.getCellType()) {
- case HSSFCell.CELL_TYPE_NUMERIC:
- // 数字
- System.out.print(cell.getNumericCellValue() + "\t");
- break;
- case HSSFCell.CELL_TYPE_STRING:
- // 字符串
- System.out.print(cell.getStringCellValue() + "\t");
- break;
- case HSSFCell.CELL_TYPE_BOOLEAN:
- // Boolean
- System.out.println(cell.getBooleanCellValue() + "\t");
- break;
- case HSSFCell.CELL_TYPE_FORMULA:
- // 公式
- System.out.print(cell.getCellFormula() + "\t");
- break;
- case HSSFCell.CELL_TYPE_BLANK:
- // 空值
- System.out.println(" ");
- break;
- case HSSFCell.CELL_TYPE_ERROR:
- // 故障
- System.out.println(" ");
- break;
- default:
- System.out.print("未知类型");
- break;
- }
- }
- System.out.print("\n");
- }
- }
- }
- /*String fileType = filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
- InputStream stream = new FileInputStream(filePath);
- Workbook wb = null;
- if (fileType.equals("xls")) {
- wb = new HSSFWorkbook(stream);
- } else if (fileType.equals("xlsx")) {
- wb = new XSSFWorkbook(stream);
- } else {
- System.out.println("您输入的 excel 格式不正确");
- }*/
2. 解析后缀为. xls 的 EXCEL 文件:
- package com.shuai.hello;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.poifs.filesystem.POIFSFileSystem;
- public class ReadXls {
- public static void main(String[] args) throws IOException,
- IOException {
- File file = new File("C:/Users/dengta/Desktop/ok1.xls");
- POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));
- HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
- HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
- int rowstart = hssfSheet.getFirstRowNum();
- int rowEnd = hssfSheet.getLastRowNum();
- for (int i = rowstart; i <= rowEnd; i++) {
- HSSFRow row = hssfSheet.getRow(i);
- if (null == row) continue;
- int cellStart = row.getFirstCellNum();
- int cellEnd = row.getLastCellNum();
- for (int k = cellStart; k <= cellEnd; k++) {
- HSSFCell cell = row.getCell(k);
- if (null == cell) continue;
- //System.out.print(""+ k +" ");
- //System.out.print("type:"+cell.getCellType());
- switch (cell.getCellType()) {
- case HSSFCell.CELL_TYPE_NUMERIC:
- // 数字
- System.out.print(cell.getNumericCellValue() + " ");
- break;
- case HSSFCell.CELL_TYPE_STRING:
- // 字符串
- System.out.print(cell.getStringCellValue() + " ");
- break;
- case HSSFCell.CELL_TYPE_BOOLEAN:
- // Boolean
- System.out.println(cell.getBooleanCellValue() + " ");
- break;
- case HSSFCell.CELL_TYPE_FORMULA:
- // 公式
- System.out.print(cell.getCellFormula() + " ");
- break;
- case HSSFCell.CELL_TYPE_BLANK:
- // 空值
- System.out.println(" ");
- break;
- case HSSFCell.CELL_TYPE_ERROR:
- // 故障
- System.out.println(" ");
- break;
- default:
- System.out.print("未知类型");
- break;
- }
- }
- System.out.print("\n");
- }
- }
- }
来源: http://www.phperz.com/article/18/0210/358607.html