使用POI导出Excel最全工具类

1:创建一个Excel表格(注意在设置单元格的先关信息时一定要:cell2.setCellStyle(style2)这种形式才能让设置起作用)

HSSFWorkbook workbook=new HSSFWorkbook();//创建工作薄对象,这里也可以设置sheet的Name

HSSFSheet sheet1 = workbook.createSheet();//创建工作表sheet对象

2:设置列宽

sheet1.setColumnWidth(0, 256*width+184);//设置第N列的宽度:0:第一列。width:要设置的宽度

3:设置行高

HSSFRow row2 = sheet1.createRow(0);//设置第一行,从零开始

HSSFCell cell2 = row2.createCell(0);//第一行第一列

row1.setHeightInPoints(35);//行高

4:调用背景颜色板

HSSFPalette palette = workbook.getCustomPalette();//拿到palette颜色板,这个是针对于一个sheet页中使用一种颜色(下边还有另外设置背景色的方法)

4.1:不确定够单元格颜色的用上边的颜色板和这个组合进行RGB颜色值如(CCFFFF)转换成16进制颜色码(204,255,255)的组合(style2:参数在下边设置样式)

 palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 204, (byte) 255, (byte) 255);

style2.setFillForegroundColor(HSSFColor.LIME.index);//设置背景颜色

4.2:确定行背景色的(style2:参数在下边设置样式)

style2.setFillForegroundColor(HSSFColor.PINK.index);//设置单元格背景色:确定单元格颜色的用这个

4.3:设置单元格背景色(下边附带有49中颜色和代码)

style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//填充单元格

 style2.setFillForegroundColor(IndexedColors.LEMON_CHIFFON.getIndex());//设置背景颜色(第二种设置背景色的方法)

上边的1-49对应下边1-49行代码(已加载原文连接地址,尊重原创)

IndexedColors.AQUA.getIndex()
IndexedColors.AUTOMATIC.getIndex()
IndexedColors.BLUE.getIndex()
IndexedColors.BLUE_GREY.getIndex()
IndexedColors.BRIGHT_GREEN.getIndex()
IndexedColors.BROWN.getIndex()
IndexedColors.CORAL.getIndex()
IndexedColors.CORNFLOWER_BLUE.getIndex()
IndexedColors.DARK_BLUE.getIndex()
IndexedColors.DARK_GREEN.getIndex()
IndexedColors.DARK_RED.getIndex()
IndexedColors.DARK_TEAL.getIndex()
IndexedColors.DARK_YELLOW.getIndex()
IndexedColors.GOLD.getIndex()
IndexedColors.GREEN.getIndex()
IndexedColors.GREY_25_PERCENT.getIndex()
IndexedColors.GREY_40_PERCENT.getIndex()
IndexedColors.GREY_50_PERCENT.getIndex()
IndexedColors.GREY_80_PERCENT.getIndex()
IndexedColors.INDIGO.getIndex()
IndexedColors.LAVENDER.getIndex()
IndexedColors.LEMON_CHIFFON.getIndex()
IndexedColors.LIGHT_BLUE.getIndex()
IndexedColors.LEMON_CHIFFON.getIndex()
IndexedColors.LIGHT_BLUE.getIndex()
IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex()
IndexedColors.LIGHT_GREEN.getIndex()
IndexedColors.LIGHT_ORANGE.getIndex()
IndexedColors.LIGHT_TURQUOISE.getIndex()
IndexedColors.LIGHT_YELLOW.getIndex()
IndexedColors.LIME.getIndex()
IndexedColors.MAROON.getIndex()
IndexedColors.OLIVE_GREEN.getIndex()
IndexedColors.ORANGE.getIndex()
IndexedColors.ORCHID.getIndex()
IndexedColors.PALE_BLUE.getIndex()
IndexedColors.PINK.getIndex()
IndexedColors.PLUM.getIndex()
IndexedColors.RED.getIndex()
IndexedColors.ROSE.getIndex()
IndexedColors.ROYAL_BLUE.getIndex()
IndexedColors.SEA_GREEN.getIndex()
IndexedColors.SKY_BLUE.getIndex()
IndexedColors.TAN.getIndex()
IndexedColors.TEAL.getIndex()
IndexedColors.TURQUOISE.getIndex()
IndexedColors.VIOLET.getIndex()
IndexedColors.WHITE.getIndex()
IndexedColors.YELLOW.getIndex()
————————————————
原文链接:https://blog.csdn.net/qq_38025219/java/article/details/82760471

5:设置样式

HSSFCellStyle style2 = workbook.createCellStyle();

style2.setWrapText(true);//指定当单元格内容显示不下时自动换行

style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中

style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中

style2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框

style2.setTopBorderColor(HSSFColor.BLACK.index);//上边框颜色

style2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

style2.setRightBorderColor(HSSFColor.BLACK.index);//右边框颜色

style2.setWrapText(true);//自动换行

style2.setIndention((short)5);//缩进

style2.setRotation((short)60);//文本旋转,这里的取值是从-90到90,而不是0-180度。

cell2.setCellStyle(style2);

5.1:水平对齐相关参数

如果是左侧对齐就是 HSSFCellStyle.ALIGN_FILL;

 如果是居中对齐就是 HSSFCellStyle.ALIGN_CENTER;

如果是右侧对齐就是 HSSFCellStyle.ALIGN_RIGHT;

如果是跨列举中就是 HSSFCellStyle.ALIGN_CENTER_SELECTION;

如果是两端对齐就是 HSSFCellStyle.ALIGN_JUSTIFY;

 如果是填充就是 HSSFCellStyle.ALIGN_FILL;

5.2: 垂直对齐相关参数

如果是靠上就是 HSSFCellStyle.VERTICAL_TOP;

 如果是居中就是 HSSFCellStyle.VERTICAL_CENTER;

如果是靠下就是 HSSFCellStyle.VERTICAL_BOTTOM;

如果是两端对齐就是 HSSFCellStyle.VERTICAL_JUSTIFY;

6:设置边框

style2.setBorderTop(HSSFCellStyle.BORDER_DOTTED);//上边框

 style2.setBorderBottom(HSSFCellStyle.BORDER_THICK);//下边框

style2.setBorderLeft(HSSFCellStyle.BORDER_DOUBLE);//左边框

style2.setBorderRight(HSSFCellStyle.BORDER_SLANTED_DASH_DOT);//右边框

style2.setTopBorderColor(HSSFColor.RED.index);//上边框颜色

style2.setBottomBorderColor(HSSFColor.BLUE.index);//下边框颜色

style2.setLeftBorderColor(HSSFColor.GREEN.index);//左边框颜色

style2.setRightBorderColor(HSSFColor.PINK.index);//右边框颜色

7:设置字体

HSSFFont font = workbook.createFont();

 font.setFontName("华文行楷");//设置字体名称

 font.setFontHeightInPoints((short)28);//设置字号

font.setColor(HSSFColor.RED.index);//设置字体颜色

font.setUnderline(FontFormatting.U_SINGLE);//设置下划线

 font.setTypeOffset(FontFormatting.SS_SUPER);//设置上标下标

font.setStrikeout(true);//设置删除线

style2.setFont(font);

 cell2.setCellStyle(style2);

8:合并列、行

CellRangeAddress region1=new CellRangeAddress(0, 1, 0, 0);//合并行

sheet1.addMergedRegion(region1);

region1=new CellRangeAddress(0, 1, 1, 44);//合并列

sheet1.addMergedRegion(region1);

CellRangeAddress(firstRow, lastRow, firstCol, lastCol),参数的说明:

firstRow:区域中第一个单元格的行号。

lastRow 区域中最后一个单元格的行号。

firstCol 区域中第一个单元格的列号。

lastCol 区域中最后一个单元格的列号

9:固定某一行某一列

sheet1.createFreezePane(1, 4);//设置此sheet页前四行第一列不随滚动条的滚动而滚动

本博客仅供交流和学习,对于使用在其他用途及产生的后果,由使用者承担,最终解释权归本人所有,请尊重原创,如需使用请标明链接地址
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值