java解析excel文件的方法

网友投稿 340 2023-06-15


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 HtnIQd== 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");

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring mvc 和ajax异步交互完整实例代码
下一篇:Java性能调优概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~