Apache POI 第三讲之对Excel单元格的操作

27 篇文章 0 订阅
6 篇文章 0 订阅

有时候我们在做项目时,有些项目需要生成Microsoft Excel文件格式的报告。有时,甚至希望将Excel文件作为输入数据。这是我们需要用到Apache POI 。例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Excel。

单元格对齐方式

1.编写主方法

public class Demo8 {
    public static void main(String[] args) throws Exception {

        // 定义一个新的工作簿
        Workbook wb = new HSSFWorkbook() ;
        // 创建第一个Sheet页
        Sheet sheet = wb.createSheet("第一个Sheet页");  
        // 创建一个行
        Row row = sheet.createRow(2) ;

        row.setHeightInPoints(30);

        // 效果:位于底部,水平居中
        createCell(wb, row, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM) ;

        // 定义一个输出流,并指定输出路径
        FileOutputStream fileOut = new FileOutputStream("./excel/excel05.xls") ;
        // 生成excel 文件
        wb.write(fileOut) ;
        fileOut.close() ;

    }

    /**
     * 创建一个单元格并为其设定指定的对齐方式
     * @param wb
     * @param row
     * @param column
     * @param halign
     * @param valign
     */
    private static void createCell(Workbook wb, Row row, short column, short halign, short valign) {
        Cell cell = row.createCell(column) ;
        cell.setCellValue(new HSSFRichTextString("Align It"));
        CellStyle cellStyle = wb.createCellStyle() ;
        // 设置单元格水平方向对其方式
        cellStyle.setAlignment(halign) ;
        // 设置单元格垂直方向对其方式
        cellStyle.setVerticalAlignment(valign) ;
        // 设置单元格样式
        cell.setCellStyle(cellStyle) ;
    }
}

2.查看效果
效果:位于底部,水平居中

这里写图片描述

单元格边框处理

public class Demo9 {
public static void main(String[] args) throws Exception {

    // 定义一个新的工作簿
    Workbook wb = new HSSFWorkbook() ;
    // 创建第一个Sheet页
    Sheet sheet = wb.createSheet("第一个Sheet页");  
    // 创建一个行
    Row row = sheet.createRow(1) ;

    Cell cell = row.createCell(1) ;
    cell.setCellValue("哈哈哈哈哈哈哈") ;
    row.setHeightInPoints(30);

    CellStyle cellStyle = wb.createCellStyle() ;
    // 设置底部边框:窄边框
    cellStyle.setBorderBottom(BorderStyle.THIN) ;
    // 设置底部颜色
    cellStyle.setBottomBorderColor(IndexedColors.GREEN.getIndex());
    // 设置左边框:点边框
    cellStyle.setBorderLeft(BorderStyle.DOTTED) ;
    // 设置左边框颜色
    cellStyle.setLeftBorderColor(IndexedColors.RED.getIndex());
    // 设置右边框:中等边界
    cellStyle.setBorderRight(BorderStyle.MEDIUM) ;
    // 设置右边框
    cellStyle.setRightBorderColor(IndexedColors.BLUE.getIndex());

    cell.setCellStyle(cellStyle) ;

    // 定义一个输出流,并指定输出路径
    FileOutputStream fileOut = new FileOutputStream("./excel/excel06.xls") ;
    // 生成excel 文件
    wb.write(fileOut) ;
    fileOut.close() ;

}

}

2.查看效果

这里写图片描述

单元格填充和颜色操作

1.编写主方法
public class Demo10 {
public static void main(String[] args) throws Exception {

    // 定义一个新的工作簿
    Workbook wb = new HSSFWorkbook() ;
    // 创建第一个Sheet页
    Sheet sheet = wb.createSheet("第一个Sheet页");  
    // 创建一个行
    Row row = sheet.createRow(1) ;

    Cell cell = row.createCell(1) ;
    cell.setCellValue("哈哈哈哈哈哈哈") ;
    row.setHeightInPoints(30);

    CellStyle cellStyle = wb.createCellStyle() ;
    // 设置背景色
    cellStyle.setFillBackgroundColor(IndexedColors.AQUA.getIndex()) ;
    cellStyle.setFillPattern(CellStyle.BIG_SPOTS) ;
    cell.setCellStyle(cellStyle) ;

    Cell cell2 = row.createCell(3) ;
    cell2.setCellValue("哦哦哦哦哦") ;
    row.setHeightInPoints(30);

    CellStyle cellStyle2 = wb.createCellStyle() ;
    // 设置前景色
    cellStyle2.setFillBackgroundColor(IndexedColors.RED.getIndex()) ;
    cellStyle2.setFillPattern(CellStyle.THICK_VERT_BANDS) ;
    cell2.setCellStyle(cellStyle2) ;

    // 定义一个输出流,并指定输出路径
    FileOutputStream fileOut = new FileOutputStream("./excel/excel07.xls") ;
    // 生成excel 文件
    wb.write(fileOut) ;
    fileOut.close() ;

}   

}

2.查看效果

这里写图片描述

单元格合并

1.编写主方法

public class Demo11 {
public static void main(String[] args) throws Exception {

    // 定义一个新的工作簿
    Workbook wb = new HSSFWorkbook() ;
    // 创建第一个Sheet页
    Sheet sheet = wb.createSheet("第一个Sheet页");  
    // 创建一个行
    Row row = sheet.createRow(1) ;

    Cell cell = row.createCell(1) ;
    cell.setCellValue("哈哈哈哈哈哈哈") ;
    row.setHeightInPoints(30);

    // 合并单元格
    sheet.addMergedRegion(new CellRangeAddress(
            1,  // 起始行
            2,  // 结束行
            1,  // 起始行
            2   // 结束行
            )) ;

    // 定义一个输出流,并指定输出路径
    FileOutputStream fileOut = new FileOutputStream("./excel/excel08.xls") ;
    // 生成excel 文件
    wb.write(fileOut) ;
    fileOut.close() ;

}

}

2.查看效果

这里写图片描述

有些方法不同是因为poi架包版本不同,具体请查看api文档。
本博主用的是:poi-3.15-beta2.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值