POI导出Excel代码片段

来源:互联网 发布:sqlserver 字段默认值 编辑:程序博客网 时间:2024/05/16 18:11
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();    }}
原创粉丝点击