使用POI生成Excel文件,可以自動調整excel列寬


//autoSizeColumn()方法自動調整excel列寬

 importjava.io.FileOutputStream;
 importorg.apache.poi.hssf.usermodel.HSSFCell;
 importorg.apache.poi.hssf.usermodel.HSSFCellStyle;
 importorg.apache.poi.hssf.usermodel.HSSFFont;
 importorg.apache.poi.hssf.usermodel.HSSFRow;
 importorg.apache.poi.hssf.usermodel.HSSFSheet;
 importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
 importorg.apache.poi.hssf.usermodel.HSSFRichTextString;
 importorg.apache.poi.hssf.usermodel.HSSFDataFormat;
 importorg.apache.poi.hssf.usermodel.HSSFComment;
 importorg.apache.poi.hssf.usermodel.HSSFPatriarch;
 importorg.apache.poi.hssf.usermodel.HSSFClientAnchor;
 
 publicclassPoiCreateExcelTest {
     publicstaticvoidmain(String[] args) {
                 
         //創建新的Excel 工作簿
          HSSFWorkbook workbook =newHSSFWorkbook();
         
         //在Excel工作簿中建一工作表,其名為缺省值, 也可以指定Sheet名稱
          HSSFSheet sheet =workbook.createSheet();
         //HSSFSheet sheet = workbook.createSheet("SheetName");
         
         //用於格式化單元格的數據
          HSSFDataFormat format =workbook.createDataFormat();
         
         //創建新行(row),並將單元格(cell)放入其中. 行號從0開始計算.
          HSSFRow row =sheet.createRow((short) 1);
 
         //設置字體
          HSSFFont font =workbook.createFont();
          font.setFontHeightInPoints((short) 20); //字體高度
          font.setColor(HSSFFont.COLOR_RED); //字體顏色
          font.setFontName("黑體"); //字體
          font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //寬度
          font.setItalic(true); //是否使用斜體
 //         font.setStrikeout(true); //是否使用划線
 
         //設置單元格類型
          HSSFCellStyle cellStyle =workbook.createCellStyle();
          cellStyle.setFont(font);
          cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
          cellStyle.setWrapText(true);
         
         //添加單元格注釋
         //創建HSSFPatriarch對象,HSSFPatriarch是所有注釋的容器.
          HSSFPatriarch patr =sheet.createDrawingPatriarch();
         //定義注釋的大小和位置,詳見文檔
          HSSFComment comment =patr.createComment(newHSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short) 6, 5));
         //設置注釋內容
          comment.setString(newHSSFRichTextString("可以在POI中添加注釋!"));
         //設置注釋作者. 當鼠標移動到單元格上是可以在狀態欄中看到該內容.
          comment.setAuthor("Xuys.");
         
         //創建單元格
          HSSFCell cell =row.createCell((short) 1);
          HSSFRichTextString hssfString =newHSSFRichTextString("Hello World!");
          cell.setCellValue(hssfString);//設置單元格內容
          cell.setCellStyle(cellStyle);//設置單元格樣式
          cell.setCellType(HSSFCell.CELL_TYPE_STRING);//指定單元格格式:數值、公式或字符串
          cell.setCellComment(comment);//添加注釋
 
         //格式化數據
          row =sheet.createRow((short) 2);
          cell =row.createCell((short) 2);
          cell.setCellValue(11111.25);
          cellStyle =workbook.createCellStyle();
          cellStyle.setDataFormat(format.getFormat("0.0"));
          cell.setCellStyle(cellStyle);
 
          row =sheet.createRow((short) 3);
          cell =row.createCell((short) 3);
          cell.setCellValue(9736279.073);
          cellStyle =workbook.createCellStyle();
          cellStyle.setDataFormat(format.getFormat("#,##0.0000"));
          cell.setCellStyle(cellStyle);
         
         
          sheet.autoSizeColumn((short)0); //調整第一列寬度
          sheet.autoSizeColumn((short)1); //調整第二列寬度
          sheet.autoSizeColumn((short)2); //調整第三列寬度
          sheet.autoSizeColumn((short)3); //調整第四列寬度
 
         try{
              FileOutputStream fileOut =newFileOutputStream("C:\3.xls");
              workbook.write(fileOut);
              fileOut.close();
          }catch(Exception e) {
              System.out.println(e.toString());
          }
      }
 
 }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM