java poi導出excel小結:設置字體、顏色、單元格日期數字格式、合併單元格等

使用了poi導出excel,最大的感受就是用過查過忘過,恰逢閒暇,賦小結一篇,以備後用

compile group: 'org.apache.poi', name: 'poi', version: '3.9'

這裏導出excel使用的方法是代碼生成,而非使用excel模板(雖然excel模板貌似應該好用點的)

這裏做個小結給大家:

  • 基本用法:

//新建一個文檔
HSSFWorkbook wb = new HSSFWorkbook();
//新建一個sheet頁,名稱爲sheet1
HSSFSheet sheet = wb.createSheet("sheet1");
//新建一個樣式
HSSFCellStyle style2 = wb.createCellStyle();//之後用到的所有樣式都需要在這裏設置並賦值
//新建一個字體
HSSFFont whiteFont = wb.createFont();
//新建第一行
HSSFRow row1 = sheet.createRow(0);//注意這裏所有的索引都是從0開始
//第一行裏創建第一個單元格
cell = row1.createCell(0);//即第一行第一個單元格
//單元格里存放內容
cell.setCellValue("寫入成功");
  • 設置顏色字體

        whiteFont.setColor(IndexedColors.WHITE.getIndex());//顏色-白
        whiteFont.setFontHeightInPoints((short) 9);//大小
        whiteFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
  • 設置單元格樣式

        style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中格式

        //設置背景色
        style2.setFillForegroundColor(IndexedColors.GREEN.getIndex());//綠色背景
        style2.setFillPattern(CellStyle.SOLID_FOREGROUND);

        //設置邊框
        style2.setBorderTop(CellStyle.SOLID_FOREGROUND);//上邊框
        style2.setBorderBottom(CellStyle.SOLID_FOREGROUND);
        style2.setBorderLeft(CellStyle.SOLID_FOREGROUND);
        style2.setBorderRight(CellStyle.SOLID_FOREGROUND);
  • 合併單元格

        //合併單元格
        CellRangeAddress region = new CellRangeAddress(1, 1, 0, 15);
        RegionUtil.setBorderBottom(HSSFCellStyle.SOLID_FOREGROUND, region, sheet, wb);
        RegionUtil.setBorderLeft(HSSFCellStyle.SOLID_FOREGROUND, region, sheet, wb);
        RegionUtil.setBorderRight(HSSFCellStyle.SOLID_FOREGROUND, region, sheet, wb);
        RegionUtil.setBorderTop(HSSFCellStyle.SOLID_FOREGROUND, region, sheet, wb);
        sheet.addMergedRegion(region);

設置單元格的屬性

HSSFDataFormat df = wb.createDataFormat();//format類
        //小數兩位樣式
        HSSFCellStyle style_content_f2 = wb.createCellStyle();
        style_content_f2.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
        style_content_f2.setDataFormat(df.getFormat("#,#0.00"));
        style_content_f2.setFont(font_content);
        //保留整數樣式的金額
        HSSFCellStyle style_content_f0 = wb.createCellStyle();
        style_content_f0.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
        style_content_f0.setDataFormat(df.getFormat("#,#0"));
        style_content_f0.setFont(font_content);
        //保留整數樣式
        HSSFCellStyle style_content_zs = wb.createCellStyle();
        style_content_zs.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style_content_zs.setDataFormat(df.getFormat("0"));//#.##
        style_content_zs.setFont(font_content);

        //日期格式,年月日時分秒
        HSSFCellStyle style_dateTime = wb.createCellStyle();
        style_dateTime.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style_dateTime.setDataFormat(df.getFormat("yyyy-MM-dd HH:mm:ss"));
        style_dateTime.setFont(font_content);
        //日期格式,年月日
        HSSFCellStyle style_date = wb.createCellStyle();
        style_date.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style_date.setDataFormat(df.getFormat("yyyy-MM-dd"));
        style_date.setFont(font_content);


        //設置爲datetime格式
        cell.setCellStyle(style_dateTime);
        cell.setCellValue(value);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章