POI操作Excel

来源:互联网 发布:长棍佯谬知乎 编辑:程序博客网 时间:2024/06/13 21:20

Jakarta POI 是一套用于访问微软格式文档的Java API。 

Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于早在Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。它的官方首页是:http://jakarta.apache.org/poi/hssf/index.html,这里可以下载到它的最新版本和文档。 

下面就来看看如何通过Jakarta POI的HSSF操作Excel文件。 

操作Excel文件的步骤同JXL类似(关于如何用JXL操作Excel可以看我的另外两篇文章)。 

HSSF对Excel的操作主要是通过下面几个对象实现: 
HSSFWorkbook    工作簿对象对应于Excel文件 
HSSFSheet       Sheet对象对应于Excel中的Sheet 
HSSFRow         行对象表示Sheet中的一

 

读取Excel:

[java] view plaincopy
  1. public void read(){  
  2.     try {  
  3. //       创建对Excel工作簿文件的引用  
  4.         HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("E:/1.xls"));  
  5.         HSSFSheet sheet = workbook.getSheet("test");// 按名获取sheet引用  
  6.         /*  
  7.            其他方法简介: 
  8.                  HSSFSheet sheet = workbook.getSheetAt(0);//按照sheet索引获取引用 从0开始 
  9.                  workbook.getSheetIndex(arg0) 获取sheet索引 arg0可以是sheet名称或者Sheet对象 
  10.                  workbook.getSheetName(0) 获取指定索引的sheet名 
  11.               1、创建字体,设置其为红色、粗体: 
  12.                 HSSFFont font = workbook.createFont(); 
  13.                 font.setColor(HSSFFont.COLOR_RED); 
  14.                 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
  15.              2、创建格式 
  16.                 HSSFCellStyle cellStyle= workbook.createCellStyle(); 
  17.                 cellStyle.setFont(font); 
  18.  
  19.                   
  20.         */  
  21.         int total = workbook.getNumberOfSheets(); //获取sheet个数  
  22.         int e = workbook.getNumberOfNames();  
  23.          HSSFRow row =  sheet.getRow(0);//获取第N行表格数据  
  24.          HSSFCell cell = row.getCell(0);//获取指定列单元格  
  25.          int start = sheet.getFirstRowNum();  //sheet起始行索引  
  26.          int end = sheet.getLastRowNum();//sheet起结束行索引  
  27.            
  28.          System.out.println("3=" + total);  
  29.          System.out.println("4=" +e);  
  30.          System.out.println("5=" +start);  
  31.          System.out.println("5=" +end);  
  32.     } catch (FileNotFoundException e) {  
  33.         // TODO Auto-generated catch block  
  34.         e.printStackTrace();  
  35.     } catch (IOException e) {  
  36.         // TODO Auto-generated catch block  
  37.         e.printStackTrace();  
  38.     }  
  39.   
  40.     }  

 

创建Excel:

[java] view plaincopy
  1. public void create(){  
  2.         try {  
  3.           
  4.             // 创建新的Excel 工作簿  
  5.             HSSFWorkbook newbook = new HSSFWorkbook();  
  6.             // 在Excel工作簿中建一工作表,其名为缺省值  
  7.             // 如要新建一名为"test"的工作表,其语句为:  
  8.             // HSSFSheet sheet = newbook.createSheet("test");  
  9.             HSSFSheet sheet = newbook.createSheet("test");  
  10.             HSSFRow row = sheet.createRow(0);//行索引  
  11.             HSSFCell cell = row.createCell(0);//列索引  
  12.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 定义单元格为字符串类型            
  13.             cell.setCellValue("数据一");// 在单元格中输入一些内容  
  14. //          HSSFCell cellt = row.createCell(5, 4);//参数一指定列 参数二暂时不晓得什么意识   
  15. //          cellt.setCellType(HSSFCell.CELL_TYPE_STRING);// 定义单元格为字符串类型           
  16. //          cellt.setCellValue("数据二");// 在单元格中输入一些内容  
  17.             // 新建一输出文件流  
  18.             FileOutputStream fp = new FileOutputStream("E:/2.xls");           
  19.             newbook.write(fp);// 把相应的Excel 工作簿存盘  
  20.             fp.flush();           
  21.             fp.close();// 操作结束,关闭文件  
  22.         } catch (FileNotFoundException e) {  
  23.             // TODO Auto-generated catch block  
  24.             e.printStackTrace();  
  25.         } catch (IOException e) {  
  26.             // TODO Auto-generated catch block  
  27.             e.printStackTrace();  
  28.         }  
  29.   
  30.     }  

 

一些理论上的东西百度下有很多,POI也好,jxl也好,都是工具

推荐几个写的好的博客:http://luxhua.javaeye.com/blog/464393(综合)

http://hi.baidu.com/df1019/blog/item/58a8b42f19a473391e3089e1.html(理论很好)

http://xlxiang7.blog.163.com/blog/static/66860805200992244016963/(基础)


转载自:  http://blog.csdn.net/jarvis_java/article/details/4923470


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 4岁宝宝呕吐腹泻怎么办 7岁儿童腹泻呕吐怎么办 一个月婴儿呕奶怎么办 一个月婴儿呕奶严重怎么办 6岁宝宝大便干燥怎么办 3岁儿童干咳嗽怎么办 3岁宝宝一直咳嗽怎么办 3岁宝宝风寒咳嗽怎么办 刚出生的宝宝拉奶瓣怎么办 小孩拉痢疾带血怎么办 2岁宝宝有点拉稀怎么办 1岁宝宝有点拉稀怎么办 3岁宝宝有点拉稀怎么办 甲减粘液性水肿怎么办 五个月宝宝断奶不吃奶粉怎么办 八个半月的宝宝不爱吃饭怎么办 十个半月宝宝不爱吃饭怎么办 九个半月宝宝不爱吃饭怎么办 七个半月宝宝不爱吃饭怎么办 8个半月宝宝不爱吃饭怎么办 八个半月宝宝不爱吃饭怎么办 特百惠杯子摔坏后不给换怎么办 特百惠水杯摔裂了怎么办 焖烧杯摔瘪了怎么办 苦瓜和虾一起吃中毒怎么办 乐扣盖子坏了怎么办 小孩上课坐不住好动怎么办 5小孩晚上不睡觉怎么办 一年级的孩子上课好动怎么办 一岁宝宝太好动怎么办 3岁宝宝太好动怎么办 孩子学习注意力不集中怎么办 1岁宝宝皮肤黄怎么办 三岁宝宝太皮怎么办 一岁宝宝太皮了怎么办 5岁宝宝学习太皮怎么办 2岁宝宝太皮了怎么办 身上的皮肤很干怎么办 小孩子挑食厌食不吃饭怎么办 1岁宝宝特别淘气怎么办 4岁宝宝有多动症怎么办