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

来源:互联网 发布:网络利大于弊的辩论词 编辑:程序博客网 时间:2024/06/05 02:19

有时候我们在做项目时,有些项目需要生成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

1 0
原创粉丝点击