POI导出Excel代码片段

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileOutputStream;

/**
 * Created by hgc on 2017/8/18.
 */
public class POIExport {
    public static void main(String[] args) throws  Exception{

        HSSFWorkbook workbook = new HSSFWorkbook();//创建HSSFWorkbook对象(excel的文档对象)
        /**
         * 单元格样式
         * 设置单元格的填充方式,以及前景颜色和背景颜色时需要注意三点:
         * 1.如果需要前景颜色或背景颜色,一定要指定填充方式,两者顺序无所谓;
         * 2.如果同时存在前景颜色和背景颜色,前景颜色的设置要写在前面;
         * 3.前景颜色不是字体颜色。
         */
        CellStyle cellStyle = workbook.createCellStyle();//创建CellStyle对象(excel的样式对象)
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置单元格左右对齐方式为居中对齐
        cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//设置单元格上下对齐方式为居中对齐
        cellStyle.setFillPattern(HSSFCellStyle.DIAMONDS);//设置填充方式(填充图案)
        cellStyle.setFillForegroundColor(HSSFColor.RED.index);//设置前景色
        cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_YELLOW.index);//设置背景颜色
        cellStyle.setBorderBottom(HSSFCellStyle.BORDER_SLANTED_DASH_DOT);// 设置单元格底部的边框及其样式和颜色
        cellStyle.setBottomBorderColor(HSSFColor.DARK_RED.index);// 这里仅设置了底边边框,左边框、右边框和顶边框同理可设


        /**
         * 设置字体
         */

        HSSFFont fontStyle = workbook.createFont();
        fontStyle.setFontName("宋体");//设置字体样式
        fontStyle.setFontHeightInPoints((short)20); //设置字体高度
        fontStyle.setColor(HSSFColor.BLUE.index);//设置字体颜色为蓝色
        fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置粗体
        fontStyle.setItalic(true);//设置斜体
        fontStyle.setUnderline(HSSFFont.U_SINGLE);//设置下划线
        cellStyle.setFont(fontStyle);// 将字体对象赋值给单元格样式对象


        /**
         * 单元格创建和赋值
         */
        HSSFSheet sheet = workbook.createSheet("成绩单");//建立新的sheet对象(excel的表单)
        HSSFRow row1 = sheet.createRow(0);//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
        sheet.setDefaultRowHeightInPoints(20);//需要在创建行之前设置缺省列高,否则文件输出后有值单元格对应的列高未按缺省值设置
        sheet.setDefaultColumnWidth(20);//设置缺省列宽
        HSSFCell cell = row1.createCell(0);//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
        cell.setCellValue("学员考试成绩一览表");//设置单元格内容
        cell.setCellStyle(cellStyle);
        sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
        HSSFRow row2 = sheet.createRow(1);//在sheet里创建第二行
        /*创建单元格并设置单元格内容*/
        row2.createCell(0).setCellValue("姓名");
        row2.createCell(1).setCellValue("班级");
        row2.createCell(2).setCellValue("笔试成绩");
        row2.createCell(3).setCellValue("机试成绩");
        /*在sheet里创建第三行*/
        HSSFRow row3=sheet.createRow(2);
        row3.createCell(0).setCellValue("李明");
        row3.createCell(1).setCellValue("As178");
        row3.createCell(2).setCellValue(87);
        row3.createCell(3).setCellValue(78);
        sheet.setColumnWidth(1, 256 * 20);//设置指定列的列宽,256 * 50这种写法是因为width参数单位是单个字符的256分之一
        /**
         * 输出
         */
        FileOutputStream outputStream = new FileOutputStream("D:\\test.xls");
        workbook.write(outputStream);
        outputStream.flush();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值