永发信息网

java 怎么读xlsx文件

答案:7  悬赏:80  手机版
解决时间 2021-12-01 01:44
java 怎么读xlsx文件
最佳答案
package rw_excel;

import static org.junit.Assert.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.ss.usermodel.Cell;
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.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class test_poi {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Test
public void test() throws IOException {
// fail("Not yet implemented");
String file_dir = "test.xlsx";
Workbook book = null;
book = getExcelWorkbook(file_dir);
Sheet sheet = getSheetByNum(book,0);

int lastRowNum = sheet.getLastRowNum();

System.out.println("last number is "+ lastRowNum);

for(int i = 0 ; i <= lastRowNum ; i++){
Row row = null;
row = sheet.getRow(i);
if( row != null ){
System.out.println("reading line is " + i);
int lastCellNum = row.getLastCellNum();
System.out.println("lastCellNum is " + lastCellNum );
Cell cell = null;

for( int j = 0 ; j <= lastCellNum ; j++ ){
cell = row.getCell(j);
if( cell != null ){
String cellValue = cell.getStringCellValue();
System.out.println("cell value is \n" + cellValue);
}
}
}
}

}

public static Sheet getSheetByNum(Workbook book,int number){
Sheet sheet = null;
try {
sheet = book.getSheetAt(number);
// if(sheet == null){
// sheet = book.createSheet("Sheet"+number);
// }
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
return sheet;
}
public static Workbook getExcelWorkbook(String filePath) throws IOException{
Workbook book = null;
File file = null;
FileInputStream fis = null;

try {
file = new File(filePath);
if(!file.exists()){
throw new RuntimeException("文件不存在");
}else{
fis = new FileInputStream(file);
book = WorkbookFactory.create(fis);
}
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
} finally {
if(fis != null){
fis.close();
}
}
return book;
}
//
}
全部回答
其实这个很简单的啊,jxl同样可以读取2007的,
可以apache 的poi框架,他的官网上有api,操作还挺简单的
你可以用POI来解析,这个应该没有xls版本的限制。需要案例,请联系追问有什么案例呢
需要jxl的包

//打开文件
Workbook book = Workbook.getWorkbook(new File(path)) ;
//取得第一个sheet
Sheet sheet = book.getSheet(0);
int rows = sheet.getRows();
//i和j是你要的行和列

Cell [] cell = sheet.getRow(i);
Cell cloumn_cell = sheet.getCell(j, i);
//str是你的内容

String str = cloumn_cell.getContents();

方法有点老了 不知道能不能帮到你
高版本的jxl好像是可以的  老版本的jar包只支持2003
解析Excel还可以用Apache POI  ,这个支持新老版本的Excel,非常好用。
apache的poi可以,http://poi.apache.org/spreadsheet/index.html这是文档
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有个产品叫“帝泊洱”,这种茶的作用是什么?
文言文中有把“第二天早上“写作“亦晨“的吗
七十六计有哪些
怎么从湖州练市去绍兴
聚合移动好吗?回答一下
求一道贸易实务案例分析答案
opencv2.4 如何能够同时打开多个usb摄像头,
微信群主解散群好友微信有什么显示呢
纯种泰极熊要多少钱?
30多岁的男人怎么增强抵抗力和免疫力?
古风类词带蔚然二字
我想如果把鸽子长期卷养对鸽子有没有坏处
鱼两边可以摆动的叫什么
孙权他爸是谁
初中物理短路和断路有什么区别
推荐资讯
单选题下列属于植物病毒的是A.流感病毒B.艾滋
南大文科专业哪些比较好
伊犁草原居住的居民
卤驴肉怎么做
uln2803apg用途
带启梦的成语比如!!启~梦~急求
请强人帮帮忙,孩子这样是不是强近症……
UV打印机能打印哪些材料?
6 1 8 7加减乘除等于24
世界上第一只鸟是怎么来的
有用古文写水果的文章么?
单选题我国种植甜菜较多的省区是A.辽宁B.甘肃
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?