Java解析excel 各位大侠给点意见

hijiankang 2010-10-19 09:11:02
用poi包还是用jxl包 ?麻烦谁拿有jxl和log4j的jar包给我发一个 hijiankang@163.com 谢谢各位啦!!!!!!!!!!!
...全文
151 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Miracle1216 2010-10-20
  • 打赏
  • 举报
回复
基本上网上搜不到的,在这也问不到结果的。。。。
whut0802 2010-10-20
  • 打赏
  • 举报
回复
给个例子,用的是POI3.0

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
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;

/**
* EXCEL文档解析工具类
* 该工具能将EXCEL文档中的表解析为由JAVA基础类构成的数据集合
* 整个EXCEL表由多个行组成.每行用一个LIST表示.
* EXCEL中的行由一个LIST表示,各列的数据索引从0开始一一对齐存放在这个LIST中;
* 多个行构成整个表,由一个LIST存放多个行.
*
*******************************************
* com.trumptech.common.fileParser.excel
* 2007-6-15
* 16:20:38
* author linfan
*******************************************
*/
public class ExcelSheetParser {

private Logger logger= Logger.getLogger(ExcelSheetParser.class);


private HSSFWorkbook workbook ;

public ExcelSheetParser(File excelFile) throws FileNotFoundException, IOException{

workbook = new HSSFWorkbook(new FileInputStream(excelFile));
}


/**
* 获得表中的数据
* @param sheetNumber 表格索引(EXCEL 是多表文档,所以需要输入表索引号)
* @return 由LIST构成的行和表
* @throws FileNotFoundException
* @throws IOException
*/
public List<List> getDatasInSheet(int sheetNumber) throws FileNotFoundException, IOException{
List<List> result = new ArrayList<List>();

//获得指定的表
HSSFSheet sheet = workbook.getSheetAt(sheetNumber);

//获得数据总行数
int rowCount = sheet.getLastRowNum();
logger.info("found excel rows count: " + rowCount);
if (rowCount < 1) {
return result;
}

//逐行读取数据
for (int rowIndex = 0; rowIndex <= rowCount; rowIndex++) {

//获得行对象
HSSFRow row = sheet.getRow(rowIndex);

if (row != null) {

List<Object> rowData = new ArrayList<Object>();

//获得本行中单元格的个数
int columnCount = row.getLastCellNum();

//获得本行中各单元格中的数据
for (short columnIndex = 0; columnIndex < columnCount; columnIndex++) {
HSSFCell cell = row.getCell(columnIndex);

//获得指定单元格中数据
Object cellStr = this.getCellString(cell);

rowData.add(cellStr);

}

result.add(rowData);
}
}
return result;
}

/**
* 获得单元格中的内容
* @param cell
* @return
*/
protected Object getCellString(HSSFCell cell){
Object result = null;
if (cell != null) {

int cellType = cell.getCellType();

switch(cellType){

case HSSFCell.CELL_TYPE_STRING :
result = cell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_FORMULA:
result = cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_ERROR:
result=null;
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
result=null;
break;
}
}
return result;
}

public static void main(String[] args) throws Exception {
File file = new File("D:\\tmp\\test.xls");
ExcelSheetParser parser = new ExcelSheetParser(file);
List<List> datas = parser.getDatasInSheet(0);

for(int i=0;i<datas.size();i++){//显示数据
List row = datas.get(i);
for(short n=0;n<row.size() ;n++){
Object value = row.get(n);
String data = String.valueOf(value);
System.out.print(data +"\t");
}
System.out.println();
}
}
}

ETCentury 2010-10-20
  • 打赏
  • 举报
回复
现在用2007的很多了,还是考虑POI吧
hijiankang 2010-10-19
  • 打赏
  • 举报
回复
现在要实现用Java解析内容为任意格式的excel的表头 有谁做过类似的没?给点意见
apchy 2010-10-19
  • 打赏
  • 举报
回复
poi3.5开始对excel2007支持,jxl不行,如果只对03格式的话,jxl的api比较简单容易上手
afunx 2010-10-19
  • 打赏
  • 举报
回复
我家里的电脑有一个jxl的,过几天回家顺便拷贝了传你。不过,网上有很多啊。下载后把.jar放在"C:\Program Files\Java\jdk1.6.0_10\jre\lib\ext”,这是我放的地方,楼主放在"JAVAHOME\jre\lib\ext",JAVAHOME指JDK的路径
final_xt 2010-10-19
  • 打赏
  • 举报
回复
http://poi.apache.org/ http://jexcelapi.sourceforge.net/
hijiankang 2010-10-19
  • 打赏
  • 举报
回复
没人用过吗?
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧