论坛首页 Java企业应用论坛

jxl 工具包读取 excel文件

浏览 2580 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-26   最后修改:2010-03-09
package *****;

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

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
 * Title:读取EXCEL工具扩展类
 * Description:
 * Copyright:Copyright (c) 2009
 * Company:******
 * @author ****
 * @version 1.0
 */
public class ExcelUtil {

	/**
	 * 传递excel文件对象读取文件方法
	 * @param file
	 * 			excel文件对象
	 * @return
	 * 			返回List<String[][]>
	 * @throws BiffException
	 * @throws IOException
	 */
	public List<String[][]> read(File file) throws BiffException, IOException{
//		创建方法返回List集合对象
		List<String[][]> contents = new ArrayList<String[][]>();
//		创建excel文件的工作簿对象book
		Workbook book = Workbook.getWorkbook(file);
//		获取excel文件工作簿的工作表数量sheets
		Sheet[] sheets = book.getSheets();
//		声明每个工作表存储的二维数组对象
		String[][] row_contents = null;
//		逐个工作表开始读取
		for(int sheet_index=0;sheet_index<sheets.length;sheet_index++) {
//			测试语句
			System.out.println("当前为"+sheet_index+"个工作簿!");
//			创建工作表对象sheet
			Sheet sheet = sheets[sheet_index];
//			获取excel当前工作表的总行数
			int rows = sheet.getRows();

//			获取excel当前工作表的总列数
			int columns = sheet.getColumns();
//			测试语句
			System.out.println("当前工作簿一共有"+rows+"行、"+columns+"列");
//			创建当前工作表的存储二维数组
			row_contents = new String[rows][columns];
//			循环将当前工作簿内容保存到对象中
//			循环行
			for(int row_index=0;row_index<rows;row_index++) {
//				循环列
				String[] column_contents = new String[columns];
				for(int column_index=0;column_index<columns;column_index++) {
//					获取当前工作表.row_index,column_index单元格的cell对象
					Cell cell = sheet.getCell(column_index,row_index);
//					获取内容值
					column_contents[column_index] = cell.getContents();
				}
//				当前sheet,当前row的所有column,存放到row_contents二维数组的row_index位置
				row_contents[row_index] = column_contents;
			}
			/**
			 * 读取测试输出代码片
			 */
			//-----------------------------------------------------------------------
			for(int j=0;j<row_contents.length;j++) {
				for(int k=0;k<row_contents[j].length;k++){
					System.out.print(row_contents[j][k]+"\t");
				}
				System.out.println();
			}
			System.out.println("---------------------");
			//-----------------------------------------------------------------------
//			集合收集数据
			contents.add(row_contents);
		}
//		返回
		return contents;
	}
}

呵呵.偷懒一下..
附:jxl.jar
  • jxl.jar (706.1 KB)
  • 下载次数: 128
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics