黑马程序员技术交流社区

标题: java如何读取excel表格中的数据? [打印本页]

作者: 奋斗的青春    时间: 2012-10-20 16:01
标题: java如何读取excel表格中的数据?
java如何读取excel表格中的数据?
作者: 刘伟平    时间: 2012-10-20 16:45
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.ArrayList;
  6. import java.util.List;

  7. import jxl.Cell;
  8. import jxl.Sheet;
  9. import jxl.Workbook;
  10. import jxl.read.biff.BiffException;
  11. /**
  12. * 读取excel公共方法
  13. *
  14. *
  15. */
  16. public class ExcelReader {
  17.         /**
  18.          *
  19.          * @param excelFile 读取文件对象
  20.          * @param rowNum 从第几行开始读,如果有一行表头则从第二行开始读
  21.          * @return
  22.          * @throws BiffException
  23.          * @throws IOException
  24.          */
  25.         public static List<String[]> readExcel(File excelFile,int rowNum) throws BiffException,
  26.                         IOException {
  27.                 // 创建一个list 用来存储读取的内容
  28.                 List<String[]> list = new ArrayList<String[]>();
  29.                 Workbook rwb = null;
  30.                 Cell cell = null;
  31.                 // 创建输入流
  32.                 InputStream stream = new FileInputStream(excelFile);
  33.                 // 获取Excel文件对象
  34.                 rwb = Workbook.getWorkbook(stream);
  35.                 // 获取文件的指定工作表 默认的第一个
  36.                 Sheet sheet = rwb.getSheet(0);
  37.                 // 行数(表头的目录不需要,从1开始)
  38.                 for (int i = rowNum-1; i < sheet.getRows(); i++) {
  39.                         // 创建一个数组 用来存储每一列的值
  40.                         String[] str = new String[sheet.getColumns()];
  41.                         // 列数
  42.                         for (int j = 0; j < sheet.getColumns(); j++) {
  43.                                 // 获取第i行,第j列的值
  44.                                 cell = sheet.getCell(j, i);
  45.                                 str[j] = cell.getContents();
  46.                         }
  47.                         // 把刚获取的列存入list
  48.                         list.add(str);
  49.                 }
  50.                 // 返回值集合
  51.                 return list;
  52.         }
  53.        
  54.         public static void main(String[] args) {
  55.                 String excelFileName = "abc.xls";
  56.                 try {
  57.                         List<String[]> list = ExcelReader.readExcel(new File(excelFileName),1);
  58.                         for (int i = 0; i < list.size(); i++) {
  59.                                 String[] str = (String[])list.get(i);
  60.                                 for (int j = 0; j < str.length; j++) {
  61.                                         System.out.println(str[j]);
  62.                                 }
  63.                         }
  64.                 } catch (BiffException e) {
  65.                         e.printStackTrace();
  66.                 } catch (IOException e) {
  67.                         e.printStackTrace();
  68.                 }
  69.         }
  70. }
复制代码
以上list中值为所读取之后存储的集合。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2