• 【遇到的问题】 POI实现EXCEL单元格合并及边框样式


    package test;
     
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.BorderStyle;
    import org.apache.poi.ss.usermodel.Font;
    import org.apache.poi.ss.usermodel.HorizontalAlignment;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.RegionUtil;
     
    public class ExcelPoiTest {
     
        public static void main(String[] args) {
            
            HSSFWorkbook workbook = new HSSFWorkbook();  // 创建一个excel
            // excel生成过程: excel-->sheet-->row-->cell
            HSSFSheet sheet = workbook.createSheet("test"); // 为excel创建一个名为test的sheet页        
            HSSFRow row = sheet.createRow(1); // 创建一行,参数2表示第一行
            HSSFCell cellB2 = row.createCell(1); // 在B2位置创建一个单元格
            HSSFCell cellB3 = row.createCell(2); // 在B3位置创建一个单元格
            cellB2.setCellValue("单元格B2"); // B2单元格填充内容
            cellB3.setCellValue("单元格B3"); // B3单元格填充内容
            
            HSSFCellStyle cellStyle = workbook.createCellStyle(); // 单元格样式
            Font fontStyle = workbook.createFont(); // 字体样式
            fontStyle.setBold(true); // 加粗
            fontStyle.setFontName("黑体"); // 字体
            fontStyle.setFontHeightInPoints((short) 11); // 大小
            // 将字体样式添加到单元格样式中 
            cellStyle.setFont(fontStyle);
            // 边框,居中
            cellStyle.setAlignment(HorizontalAlignment.CENTER);
            cellStyle.setBorderBottom(BorderStyle.THIN);
            cellStyle.setBorderLeft(BorderStyle.THIN);
            cellStyle.setBorderRight(BorderStyle.THIN);
            cellStyle.setBorderTop(BorderStyle.THIN);
            cellB2.setCellStyle(cellStyle); // 为B2单元格添加样式
            
            // 合并单元格
            CellRangeAddress cra =new CellRangeAddress(1, 3, 1, 3); // 起始行, 终止行, 起始列, 终止列
            sheet.addMergedRegion(cra);
            
            // 使用RegionUtil类为合并后的单元格添加边框
            RegionUtil.setBorderBottom(1, cra, sheet); // 下边框
            RegionUtil.setBorderLeft(1, cra, sheet); // 左边框
            RegionUtil.setBorderRight(1, cra, sheet); // 有边框
            RegionUtil.setBorderTop(1, cra, sheet); // 上边框
            
            // 输出到本地
            String excelName = "/myExcel.xls";
            FileOutputStream out = null;
            try {
                out = new FileOutputStream(excelName);
                workbook.write(out);
                out.flush();
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (out != null)
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                out = null;
            }
        }
     
    }
  • 相关阅读:
    log4net 发布到生产环境不写日志的解决方法--使用 NLog日志
    centos 下Supervisor 守护进程基本配置
    centos 7 下安装Nginx
    Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
    centos之Haproxy 负载均衡学习笔记
    改进初学者的PID-介绍
    实现Modbus TCP多网段客户端应用
    有一种亲切是手机
    实现Modbus ASCII多主站应用
    爱好
  • 原文地址:https://www.cnblogs.com/dk1024/p/13213941.html
Copyright © 2020-2023  润新知