读取xlsx文件 java包_Java读取Excel文件(包括xls和xlsx)的样例程序

样例程序如下所示,其中:

parseXls()函数依赖于jxl,只能读取xls格式文件;

parseExcel()函数依赖于apache poi,能够读取xls和xlsx两种格式的文件。

jxl的依赖:

net.sourceforge.jexcelapi

jxl

2.6.12

apache poi的依赖:

org.apache.poi

poi

3.10-FINAL

org.apache.poi

poi-ooxml

3.10-FINAL

示例代码:

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import jxl.Sheet;

import jxl.Workbook;

public class ExcelParser {

public List> parseXls(File file) {

try {

Workbook workbook = Workbook.getWorkbook(file);

Sheet sheet = workbook.getSheet(0);

List> list = new ArrayList>();

for (int i = 0; i < sheet.getRows(); i++) {

List rowList = new ArrayList();

for (int j = 0; j < sheet.getColumns(); j++) {

rowList.add(sheet.getCell(j, i).getContents());

}

list.add(rowList);

}

// test

for (List rowList : list) {

for (String s : rowList)

System.out.print(s + ",");

System.out.println();

}

return list;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public List> parseExcel(File file) {

try {

InputStream fis = new FileInputStream(file);

String fileName = file.getName();

org.apache.poi.ss.usermodel.Workbook workbook = null;

if (fileName.toLowerCase().endsWith("xlsx")) {

workbook = new XSSFWorkbook(fis);

} else if (fileName.toLowerCase().endsWith("xls")) {

workbook = new HSSFWorkbook(fis);

}

org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(0);

List> list = new ArrayList>();

Iterator rowIterator = sheet.iterator();

while (rowIterator.hasNext()) {

Row row = rowIterator.next();

List rowList = new ArrayList();

Iterator cellIterator = row.cellIterator();

while (cellIterator.hasNext()) {

Cell cell = cellIterator.next();

switch(cell.getCellType()) {

case Cell.CELL_TYPE_NUMERIC:

rowList.add("" + cell.getNumericCellValue());

break;

case Cell.CELL_TYPE_STRING:

default:

rowList.add(cell.getStringCellValue());

break;

}

}

list.add(rowList);

}

// test

for (List rowList : list) {

for (String s : rowList)

System.out.print(s + ",");

System.out.println();

}

return list;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public static void main(String[] args) {

new ExcelParser().parseExcel(new File("C:\\Users\\zifeiy\\Documents\\zifeiy.xlsx"));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值