麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

POI-Microsoft Office讀寫支持

2019-11-15 00:00:12
字體:
供稿:網(wǎng)友
POI-Microsoft Office讀寫支持

最近做一個小項目,中間有一個環(huán)節(jié)是將集合里的數(shù)據(jù)保存到本地Excel文件中、將本地Excel文件讀取到集合里面

POI’

  簡單說一下吧:POI是apache提供的,對Microsoft Office格式的文檔提供讀寫支持!

  • HSSF - 提供讀寫Microsoft Excel格式檔案的功能。
  • XSSF - 提供讀寫MicrosoftExcelOOxml格式檔案的功能。
  • HWPF - 提供讀寫Microsoft Word格式檔案的功能。
  • HSLF - 提供讀寫Microsoft Powerpoint格式檔案的功能。
  • HDGF - 提供讀寫Microsoft Visio格式檔案的功能。
    要對Excel進(jìn)行讀取,首先得下載架包:poi-**-**.jar    以項目中我遇到的兩個業(yè)務(wù)為例:  1、將數(shù)據(jù)導(dǎo)入Excel  
 1 ** 2  * excel 工具類 3  * 提供:導(dǎo)入Excel 和 導(dǎo)出Excel方法  4  * @author Marvel 5  * 6  */ 7 public class ExcelTool { 8     PRivate static HSSFCell cell; //列 9     private static HSSFWorkbook hwb; //Excel對象10     private static HSSFSheet sheet; //工作夾11     private static HSSFRow row; //行12     13     14     /**15      * 導(dǎo)入Excel16      * @param strs 標(biāo)題17      * @param list 集合18      * @param path 保存路徑/文件名.xls19      * @throws Exception20      */21     public static Integer ToExcel(List<Object[]> list,String path) throws Exception{22         //創(chuàng)建Excel文檔、此時內(nèi)容在內(nèi)存中23         hwb=new HSSFWorkbook();24         //sheet 對應(yīng)創(chuàng)建一個工作夾;25         sheet=hwb.createSheet("debug.factory");26         //打印行27         for(int i=0;i<list.size();i++){28             //創(chuàng)建一行29             row=sheet.createRow(i);30             //得到一行數(shù)據(jù)31             Object []objs=(Object[])list.get(i);32             //打印列33             for(int a=0;a<objs.length;a++){34                 //創(chuàng)建一列35                 cell= row.createCell(a);36                 //設(shè)值37                 cell.setCellValue(objs[a].toString());38             }39         }40         // 創(chuàng)建文件輸出流,準(zhǔn)備輸出電子表格41         OutputStream out = new FileOutputStream(path);42         hwb.write(out);43         out.close();44         return hwb.getSheetAt(0).getLastRowNum();45     }46 }

測試代碼:

 1 package com.dev4j.debug.test; 2  3 import static org.junit.Assert.*; 4  5 import java.util.ArrayList; 6 import java.util.List; 7  8 import org.junit.Before; 9 import org.junit.Test;10 11 import com.dev4j.debug.tool.ExcelTool;12 13 /**14  * 15  * @author Marvel16  *17  */18 public class ExcelToolTest {19     20     21     @Test22     public void testToExcel() throws Exception {23         List<Object[]> objs=new ArrayList<Object[]>();24         Object []obj=new Object[]{"張三","18","男"}; 25         objs.add(new Object[]{"姓名","年齡","性別"});26         objs.add(obj);27         28         //因為getLastRowNum();返回的是最后一行數(shù)據(jù)的下標(biāo),0開始的,所以這里返回下標(biāo)為129         assertEquals((long)1,(long)ExcelTool.ToExcel(objs, "E://test2.xls"));30     }31 32 }

2、導(dǎo)出Excel并且追加記錄

 1 /** 2      * 共同需要的 3      * @param lists 4      */ 5     public static void write(Integer startRow,List<Object[]> lists){ 6         for(int i=0;i<lists.size();i++){ 7             //創(chuàng)建一行 8             row=sheet.createRow(startRow+i); 9             //得到一行數(shù)據(jù)10             Object []objs=(Object[])lists.get(i);11             //打印列12             for(int a=0;a<objs.length;a++){13                 //創(chuàng)建一列14                 cell= row.createCell(a);15                 //設(shè)值16                 cell.setCellValue(objs[a].toString());17             }18         }19         20     }21     22     23     24     /**25      * 打開文件并追加記錄26      * @param list27      * @param path28      * @return29      * @throws Exception30      */31     public static Integer appendExcel(List<Object[]> list,String path) throws Exception{32         //input流加載33         InputStream is = new FileInputStream(path);34         //創(chuàng)建hwb對象35         hwb = new HSSFWorkbook(is);36         //記錄下最后一行記錄下標(biāo),+1更新下一行寫入下標(biāo)37         int lastRow=hwb.getSheetAt(0).getLastRowNum()+1;38         //循環(huán)創(chuàng)建39         write(lastRow,list);40         // 創(chuàng)建文件輸出流,準(zhǔn)備輸出電子表格41         OutputStream out = new FileOutputStream(path);42         hwb.write(out);43         out.close();44         return hwb.getSheetAt(0).getLastRowNum();45     }

之前寫的代碼里面有重復(fù)的代碼段,提取出來,寫成write(Integer,List<Object[]>)方法

這是個簡單的Excel讀寫操作,快GET吧!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文字幕极速在线观看 | 日本中文字幕电影在线观看 | 在线免费观看欧美 | 久草在线视频新 | 爱操成人网 | 无码专区aaaaaa免费视频 | 国产精品久久久久久238 | 精品国产九九九 | 天天夜碰日日摸日日澡性色av | 黄色av免费网站 | 亚洲成人免费电影 | 深夜影院a| 成人9禁啪啪无遮挡免费 | 黄色一级毛片免费看 | 国产精品啪一品二区三区粉嫩 | 91成人在线免费 | 亚洲九九色 | 91精品欧美一区二区三区 | 国产亚洲欧美日韩在线观看不卡 | 精品久久久久久久久中文字幕 | 久久久久久久.comav | 天天躁狠狠躁夜躁2020挡不住 | 污黄视频在线播放 | 欧美视频网 | 欧洲精品久久久久69精品 | 成人福利视频在 | 精品午夜影院 | 久久精品亚洲精品国产欧美kt∨ | 日本xxxx色视频在线观看免费, | 最新毛片在线观看 | 少妇一级淫片免费看 | 在线成人www免费观看视频 | 免费观看视频91 | 久久凹凸 | 中文字幕免费播放 | 黄色a级片视频 | 国产在线播放91 | 草莓视频在线导航 | sesee99| 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 成人在线视频在线观看 |