java中excel文件数据的导入

在网上找到的一些资料与自己例子的结合,记下来供自己参考。

首先是要有个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();
		}

	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值