您的位置:首页 > 编程语言 > Java开发

java中excel文件数据的导入

2011-07-21 12:35 369 查看
在网上找到的一些资料与自己例子的结合,记下来供自己参考。
首先是要有个jxl.jar包。在http://www.andykhan.com/jexcelapi/download.html里去下了最新版本,发现运行起来有问题,错误提示版本不符什么的。然后搜到说JDK1.6该用JExcelApi v2.6.9这个版本,确实如此。
还有一个问题就是貌似.xlsx文件没办法解析,只能是.xls的。
然后就是以下对excel文件导入的demo。要实现的是把用户信息从userInfo.xls里导入到一个UserInfo的List里,并在控制台输出。
UserInfo的类此处不给出了。
package test;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.ArrayList;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ReadFile {

public List<UserInfo> ReadInfo() throws BiffException, IOException {

List<UserInfo> userInfoList = new ArrayList<UserInfo>();
UserInfo userInfo;

String filePath = "F:\\userInfo.xls";
InputStream inputStream = new FileInputStream(filePath);
try {
Workbook workbook = Workbook.getWorkbook(inputStream);
Sheet sheet = workbook.getSheet(0);
String sheetName = sheet.getName();
// System.out.println("sheet name :" + sheetName);
if (sheetName != null) {
// 获取表格总列数
int columns = sheet.getColumns();
// System.out.println("sheet columns: " + columns);
// 获取表格总行数
int rows = sheet.getRows();
// System.out.println("sheet rows: " + rows);
// 访问每个单元
for (int i = 1; i < rows; ++i) {
Cell[] cells = sheet.getRow(i);
userInfo = new UserInfo();
userInfo.setUserId(cells[0].getContents());
userInfo.setUserName(cells[1].getContents());
userInfo.setEmail(cells[2].getContents());
userInfoList.add(userInfo);
}
}
workbook.close();
return userInfoList;
} catch (Exception e) {
e.printStackTrace();
return userInfoList;
}
}

public static void main(String[] args) {

List<UserInfo> userInfoList = new ArrayList<UserInfo>();
ReadFile readFile = new ReadFile();
try {
userInfoList = readFile.ReadInfo();
System.out.println("用户ID 用户名 Email");
for(int i=0; i<userInfoList.size(); ++i){
System.out.println(userInfoList.get(i).getUserId()+" "+
userInfoList.get(i).getUserName()+" "+
userInfoList.get(i).getEmail());
}
} catch (Exception e) {
e.printStackTrace();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息