Apache POI使用指南(HSSFWorkbook生成excel)

說 明:

 

  • 因爲poi的功能多樣,能夠生成ppt、word、excel.......,本文就以生成excel爲例進行說明,相信聰明的你必定能觸類旁通

 

  • 使用的版本4.0.1

 

  • maven依賴

      <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.0.1</version>
     </dependency>html

  •    poi組件說明
Apache POI組件
組件 組件類型
HSSF Microsoft Excel XLS格式檔案
XSSF Microsoft Excel OOXML XLSX格式檔案
HWPF Microsoft Word DOC格式檔案
HSLF Microsoft PowerPoint格式檔案
HDGF Microsoft Visio格式檔案
HPBF Microsoft Publisher格式檔案
HSMF Microsoft Outlook格式檔案

 

  

 

 

 

 

 

 

 

 

 

  • 生成一個excel文檔demo

代碼apache

public static void hssfDemo1() throws Exception{ //1.建立一個文檔對象HSSFWorkbook (一個excel文檔就對應一個HSSFWorkbook實例), 有兩種建立方式 //方式一
        HSSFWorkbook wb = new HSSFWorkbook(); //方式二 // HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //2.咱們都知道excel文檔裏面對應了sheet(能夠有多個sheet),因此第二個步驟就是生成sheet對象
        HSSFSheet sheet1 = wb.createSheet("sheet1");  //"sheet1"未對應的sheet的名稱 //3.sheet裏面的內容都是一行一行的格子組成,因此須要建立「行對象」
        HSSFRow row0 = sheet1.createRow(0);    //建立第一行,"0"爲行號的下標 //4.生成列
        HSSFCell cell0 = row0.createCell(0);   //生成第一行的第一列
        HSSFCell cell1 = row0.createCell(1);   //生成第一行的第二列
        HSSFCell cell2 = row0.createCell(2);   //生成第一行的第三列
        HSSFCell cell3 = row0.createCell(3);   //生成第一行的第四列 //5.給列進行賦值
        cell0.setCellValue("姓名"); cell1.setCellValue("年齡"); cell2.setCellValue("地址"); cell3.setCellValue("電話"); //6.輸出excel文件
        FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls"); wb.write(fileOut); }

 

生成文件結果微信

           

 

              

  • 相信聰明的你看了上面的demo,對生成excel有了一個感性的認識,下面來生成一個有點樣子的excel文檔(合併單元格、設置樣式、設置字體。。。。。。)

 

 

public static void hssfDemo2() throws Exception{ //建立文檔對象HSSFWorkbook
        HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //建立sheet
        HSSFSheet sheet1 = wb.createSheet("我是sheet1"); HSSFSheet sheet2 = wb.createSheet("我是sheet2"); //因爲此方式建立行和列須要很大的代碼量,咱們能夠採用循環的方式進行構建
        /* //建立sheet1裏面的行 HSSFRow row0 = sheet1.createRow(0); // 建立第一行,"0"爲行號的下標 HSSFRow row1 = sheet1.createRow(1); // 建立第一行,"0"爲行號的下標 HSSFRow row2 = sheet1.createRow(2); // 建立第一行,"0"爲行號的下標 // 4.生成列 HSSFCell cell0 = row0.createCell(0); // 生成第一行的第一列 HSSFCell cell1 = row0.createCell(1); // 生成第一行的第二列 HSSFCell cell2 = row0.createCell(2); //生成第一行的第三列 HSSFCell cell3 = row0.createCell(3); //生成第一行的第四列 */
        
        //for循環方式進行構建"行和列" //分別給sheet1和sheet2構建10行
        for(int i = 0; i < 10; i++){   //生成10行
            HSSFRow a = sheet1.createRow(i);  //sheet1的行
            HSSFRow b = sheet2.createRow(i);  //sheet2的行
 } //給行設置標題
        HSSFRow row0OnSheet1 = sheet1.getRow(0); HSSFRow row1OnSheet1 = sheet1.getRow(1); row0OnSheet1.createCell(0).setCellValue("姓名"); row0OnSheet1.createCell(1).setCellValue("年齡"); row0OnSheet1.createCell(2).setCellValue("聯繫方式"); row0OnSheet1.createCell(3); row0OnSheet1.createCell(4); row1OnSheet1.createCell(2).setCellValue("QQ"); row1OnSheet1.createCell(3).setCellValue("微信"); row1OnSheet1.createCell(4).setCellValue("手機"); //合併單元格 //上下單元格合併操做 (將"姓名"、"年齡"兩列每一個單元格上下合併)
        sheet1.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));  //將第一列的「第一行與第二行」合併 參數說明:(0, 1, 0, 0) -->(第一行下標, 第二行下標, 第一列, 第一列下標)
        sheet1.addMergedRegion(new CellRangeAddress(0, 1, 1, 1)); //左右單元格合併 (將第一行的三個單元格(下標爲2 3 4)合併成一個單元格,"聯繫方式")
        sheet1.addMergedRegion(new CellRangeAddress(0, 0, 2, 4)); //設置樣式 //建立字體樣式
        HSSFFont font = wb.createFont(); font.setBold(true);                     //加粗
        font.setColor((short)50);               //設置字體顏色
        font.setFontHeightInPoints((short) 12); //字體大小 //構建列的樣式
        HSSFCellStyle cs = wb.createCellStyle(); cs.setFont(font); //列的字體
        cs.setAlignment(HorizontalAlignment.CENTER);        //水平居中對齊
        cs.setVerticalAlignment(VerticalAlignment.CENTER);  //垂直居中對齊 //給excel列加上樣式
        for(int i = 0; i < 10; i++){ sheet1.setColumnWidth(i, 20 * 256); HSSFCell cell = row0OnSheet1.getCell(i); HSSFCell cell1 = row1OnSheet1.getCell(i); if(cell != null){ cell.setCellStyle(cs); } if(cell1 != null){ cell1.setCellStyle(cs); } } //輸出excel文件
          FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls"); wb.write(fileOut); }

 

 

生成文件結果maven

 

 

 本文地址:http://www.javashuo.com/article/p-mpxxvund-cv.html字體

 

 

若是你有更簡介的方式歡迎留言  !謝謝spa

相關文章
相關標籤/搜索