Jxl读取.xls文件(可读取所有的sheet)
2010-04-09 12:13:43| 分类: java | 标签: |字号大中小 订阅
最近因工作需要,对Excel的解析方面的技术进行了一些恶补!
对用JXl/POI解析Excel文档做了一些练习,个人觉得JXL顺手一点,就做了个读取的例子!
只要到入JXL的包即可!
JXL的主页是:http://www.andykhan.com/jexcelapi/
Java代码
- imp
ort java.io.FileInputStream; - imp
ort java.io.IOException; - imp
ort java.io.InputStream; - imp
ort jxl.Sheet; - imp
ort jxl.Workbook; - /**
- * @author Qin_Tianxiang
- * jxl读取.xls文件(可读取所有的sheet)
- */
- public class JavaReadXls {
- private String filetype = null;
- private Workbook wb = null;
- public JavaReadXls(String filepath) throws Exception {
- if (filepath.trim().equals("") || filepath == null) {
- throw new IOException("参数不能为空或全为空格!");
- }
- this.filetype = filepath.substring(filepath.lastIndexOf(".") + 1);
- InputStream is = new FileInputStream(filepath);
- if (filetype.equalsIgnoreCase("xls")) {
- System.out.println("xls格式文件");
- wb = Workbook.getWorkbook(is);// 创建工作薄
- } else {
- throw new Exception("不是.xls文件,请选择.xls格式文件!");
- }
- }
- public void RaadXls() throws Exception {
- Sheet[] sheets = wb.getSheets();// 获取所有的sheet
- for (int x = 0; x < sheets.length; x++) {
- Sheet s = wb.getSheet(x);// 获取sheet
- // System.out.println(s.getRows()+"sheet的行数");
- if (s.getRows() == 0) {// 判断sheet是否为空
- System.out.println("Sheet" + (x + 1) + "为空!");
- continue;
- } else {
- // 通用的获取cell值的方式,getCell(int column, int row) 行和列
- int Rows = s.getRows();// 总行
- int Cols = s.getColumns();// 总列
- System.out.println("当前工作表的名字:" + s.getName());
- System.out.println("总行数:" + Rows);
- System.out.println("总列数:" + Cols);
- String[][] str = new String[Rows][Cols];
- for (int i = 0; i < Rows; i++) {
- for (int j = 0; j < Cols; j++) {
- str[i][j] = (s.getCell(j, i)).getContents();// getCell(Col,Row)获得单元格的值
- System.out.print(str[i][j] + "\t");
- }
- System.out.print("\n");
- }
- }
- }
- wb.close();// 操作完成时,关闭对象,释放内存
- }
- public static void main(String[] args) throws Exception {
- new JavaReadXls("D://2009年计算机系专业课总表.xls").RaadXls();
- }
- }