• Java--Excel--poi 边框、单元格换行、 背景色、合并单元格相关


      1 import com.google.common.collect.Maps;
      2 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
      3 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
      4 import org.apache.poi.ss.usermodel.*;
      5 
      6 import java.io.File;
      7 import java.io.FileOutputStream;
      8 import java.io.OutputStream;
      9 import java.util.ArrayList;
     10 import java.util.List;
     11 import java.util.Map;
     12 
     13 public class programTestmmm {
     14     static final float PIXEL = 30.2f;
     15     static Map<Byte, Short> headerWidth = Maps.newHashMap();
     16     static {
     17         headerWidth.put((byte)0, (short)(PIXEL * 50));
     18         headerWidth.put((byte)1, (short)(PIXEL * 50));
     19         headerWidth.put((byte)2, (short)(PIXEL * 50));
     20         headerWidth.put((byte)3, (short)(PIXEL * 50));
     21         headerWidth.put((byte)4, (short)(PIXEL * 150));
     22         headerWidth.put((byte)5, (short)(PIXEL * 150));
     23         headerWidth.put((byte)6, (short)(PIXEL * 130));
     24         headerWidth.put((byte)7, (short)(PIXEL * 130));
     25         headerWidth.put((byte)8, (short)(PIXEL * 130));
     26     }
     27 
     28     public static void createHeader4Excel(Workbook wb, Sheet sheet, String number) {
     29         Row row = sheet.createRow((short)0);
     30         row.setHeight((short)512);
     31         String numStr = "newline
    (II:" + number + ")";
     32         String[] headers = { "序号", "AA", "BB", "CC", "DD", numStr, "EE", "FF", "GG" };
     33         createHeader(wb, sheet, row, headers);
     34 
     35         for( int i = 0; i < headers.length; i++ )
     36             sheet.setColumnWidth((short)i, (short) headerWidth.get(Byte.valueOf((byte) i)));
     37     }
     38 
     39     private static void createHeader(Workbook wb, Sheet sheet, Row row, String[] headers) {
     40         for( int i = 0; i < headers.length; i++ ){
     41             Cell cell = row.createCell(i);
     42             CellStyle cellStyle = wb.createCellStyle();
     43             cellStyle.setAlignment(CellStyle.ALIGN_CENTER);//左右居中
     44             cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
     45             cellStyle.setWrapText(true);//先设置为自动换行
     46 
     47             //设置边框
     48             cellStyle.setBorderBottom(CellStyle.BORDER_THIN); // 底部边框
     49             cellStyle.setBorderLeft(CellStyle.BORDER_THIN);  // 左边边框
     50             cellStyle.setBorderRight(CellStyle.BORDER_THIN); // 右边边框
     51             cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); // 上边边框
     52 
     53             //背景色
     54             cellStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.index);
     55             cellStyle.setFillBackgroundColor(IndexedColors.GREY_40_PERCENT.index);
     56             cellStyle.setFillPattern(CellStyle.FINE_DOTS);
     57 
     58             cell.setCellStyle(cellStyle);
     59             cell.setCellValue(headers[i]);
     60 
     61             if(i == 5)
     62                 cell.setCellValue(new HSSFRichTextString(headers[i]));
     63         }
     64     }
     65 
     66     private static void fillRecords(Workbook wb, Sheet sheet, List<String> records) {
     67         for( int i = 0; i < records.size(); i++ ){
     68             Row row = sheet.createRow((short)i+1);
     69 
     70             setCellValue( wb, row.createCell(0), records.get(i));
     71             setCellValue( wb, row.createCell(1), records.get(i) );
     72             setCellValue( wb, row.createCell(2), records.get(i) );
     73             setCellValue( wb, row.createCell(3), records.get(i));
     74             setCellValue( wb, row.createCell(4), records.get(i) );
     75             setCellValue( wb, row.createCell(5), records.get(i) );
     76         }
     77     }
     78 
     79     // Excel最多支持4000个style
     80     private static void setCellValue( Workbook wb, Cell cell, String value ){
     81         //CellStyle cellStyle = wb.createCellStyle();
     82         //cell.setCellStyle(cellStyle);
     83         cell.setCellValue(value);
     84         cell.setCellType(Cell.CELL_TYPE_STRING);
     85     }
     86 
     87     public static void main(String[] args) {
     88         File file = new File("C://Documents//createExcel.xls");
     89         OutputStream os = null;
     90         try {
     91             os = new FileOutputStream(file, true);
     92             Workbook wb = new HSSFWorkbook();
     93             Sheet sheet = wb.createSheet();
     94 
     95             //合并单元格,参数说明:1:开始行 2:结束行  3:开始列 4:结束列
     96 //            sheet.addMergedRegion(new CellRangeAddress(0,0,2,3));
     97 
     98             createHeader4Excel( wb, sheet, "150" );
     99 
    100             List<String> records = new ArrayList<String>();
    101             records.add("11");
    102             records.add("22");
    103             records.add("33");
    104             records.add("44");
    105             records.add("55");
    106             records.add("66");
    107             fillRecords( wb, sheet, records );
    108        wb.setSheetName(0, "first sheet");//设置sheet名字
    109             wb.write(os);
    110         } catch (Exception e) {
    111             e.printStackTrace();
    112         }
    113     }
    114 }
  • 相关阅读:
    在Android中如何获取视频的第一帧图片并显示在一个ImageView中
    利用MsChart控件绘制多曲线图表 z
    国外成熟的程序交易系统的思路 z
    稳健获利
    用vmware安装gho文件
    数学之美 zt
    大型邮箱smtp服务器及端口 收集
    英语之路 zt
    C# Get Desktop Screenshot ZZ
    C#/PHP Compatible Encryption (AES256) ZZ
  • 原文地址:https://www.cnblogs.com/skyball/p/9528110.html
Copyright © 2020-2023  润新知