单元格边框样式包含框线样式和边框颜色,可以对单元格的四边设置不同的样式
设置单元格样式:
style.setBorderBottom(BorderStyle.DOUBLE);
style.setBottomBorderColor(IndexedColors.BLUE.getIndex());
style.setBorderLeft(BorderStyle.THICK);
style.setLeftBorderColor(IndexedColors.GREEN.getIndex());
style.setBorderRight(BorderStyle.DASH_DOT);
style.setRightBorderColor(IndexedColors.RED.getIndex());
style.setBorderTop(BorderStyle.MEDIUM);
style.setTopBorderColor(IndexedColors.ORANGE.getIndex());
org.apache.poi.ss.usermodel.BorderStyle
package org.apache.poi.ss.usermodel;
/** * The enumeration value indicating the line style of a border in a cell, * i.e., whether it is bordered dash dot, dash dot dot, dashed, dotted, double, hair, medium, * medium dash dot, medium dash dot dot, medium dashed, none, slant dash dot, thick or thin. */
public enum BorderStyle {
/** * No border (default) */
NONE(0x0),
/** * Thin border */
THIN(0x1),
/** * Medium border */
MEDIUM(0x2),
/** * dash border */
DASHED(0x3),
/** * dot border */
DOTTED(0x4),
/** * Thick border */
THICK(0x5),
/** * double-line border */
DOUBLE(0x6),
/** * hair-line border */
HAIR(0x7),
/** * Medium dashed border */
MEDIUM_DASHED(0x8),
/** * dash-dot border */
DASH_DOT(0x9),
/** * medium dash-dot border */
MEDIUM_DASH_DOT(0xA),
/** * dash-dot-dot border */
DASH_DOT_DOT(0xB),
/** * medium dash-dot-dot border */
MEDIUM_DASH_DOT_DOT(0xC),
/** * slanted dash-dot border */
SLANTED_DASH_DOT(0xD);
private final short code;
private BorderStyle(int code) {
this.code = (short)code;
}
public short getCode() {
return code;
}
private static final BorderStyle[] _table = new BorderStyle[0xD + 1];
static {
for (BorderStyle c : values()) {
_table[c.getCode()] = c;
}
}
public static BorderStyle valueOf(short code) {
return _table[code];
}
}
package hssf.sheet.border;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderExtent;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
public class ExportBorderStyle {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");
if (file.exists()) {
file.delete();
}
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));
exportExcel(out);
} finally {
out.close();
}
}
/** * @param out * @throws IOException */
private static void exportExcel(BufferedOutputStream out) throws IOException {
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet();
sheet.setColumnWidth(2, 20*256);
Row row = sheet.createRow(2);
row.setHeightInPoints(30);
Cell cell = row.createCell(2);
cell.setCellValue("单元格边框样式");
CellStyle style = workbook.createCellStyle();
style.setBorderBottom(BorderStyle.DOUBLE);
style.setBottomBorderColor(IndexedColors.BLUE.getIndex());
style.setBorderLeft(BorderStyle.THICK);
style.setLeftBorderColor(IndexedColors.GREEN.getIndex());
style.setBorderRight(BorderStyle.DASH_DOT);
style.setRightBorderColor(IndexedColors.RED.getIndex());
style.setBorderTop(BorderStyle.MEDIUM);
style.setTopBorderColor(IndexedColors.ORANGE.getIndex());
cell.setCellStyle(style);
workbook.write(out);
}
}
设置合并单元格边框样式,POI提供了方法:
org.apache.poi.ss.util.CellUtil
/** * 设置合并单元格边框 - 线条 * */
private static void setBorderStyle(Sheet sheet, CellRangeAddress region) {
// 合并单元格左边框样式
RegionUtil.setBorderLeft(BorderStyle.THICK, region, sheet);
RegionUtil.setLeftBorderColor(IndexedColors.BLUE.getIndex(), region, sheet);
// 合并单元格上边框样式
RegionUtil.setBorderTop(BorderStyle.DASH_DOT_DOT, region, sheet);
RegionUtil.setTopBorderColor(IndexedColors.LIGHT_ORANGE.getIndex(), region, sheet);
// 合并单元格右边框样式
RegionUtil.setBorderRight(BorderStyle.SLANTED_DASH_DOT, region, sheet);
RegionUtil.setRightBorderColor(IndexedColors.RED.getIndex(), region, sheet);
// 合并单元格下边框样式
RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, region, sheet);
RegionUtil.setBottomBorderColor(IndexedColors.GREEN.getIndex(), region, sheet);
}
package hssf.sheet.border;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellUtil;
import org.apache.poi.ss.util.RegionUtil;
import org.apache.poi.ss.util.WorkbookUtil;
public class ExportMergeCellBorderStyle {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");
if (file.exists()) {
file.delete();
}
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));
exportExcel(out);
} finally {
out.close();
}
}
private static void exportExcel(BufferedOutputStream out) throws Exception {
Workbook workbook = new HSSFWorkbook();
String safeSheetName = WorkbookUtil.createSafeSheetName("合并单元格边框样式");
Sheet sheet = workbook.createSheet(safeSheetName);
// 1.创建一个合并单元格
// CellRangeAddress region = new CellRangeAddress(1, 9, 1, 4);
CellRangeAddress region = CellRangeAddress.valueOf("B2:E10");
sheet.addMergedRegion(region);
// 2.设置合并单元格内容
Cell cell = sheet.createRow(1).createCell(1);
cell.setCellValue("合并单元格边框样式");
// 设置单元格内容水平垂直居中
CellUtil.setAlignment(cell, HorizontalAlignment.CENTER);
CellUtil.setVerticalAlignment(cell, VerticalAlignment.CENTER);
// 3.设置合并单元格边框
setBorderStyle(sheet, region);
workbook.write(out);
}
/** * 设置合并单元格边框 - 线条 * */
private static void setBorderStyle(Sheet sheet, CellRangeAddress region) {
// 合并单元格左边框样式
RegionUtil.setBorderLeft(BorderStyle.THICK, region, sheet);
RegionUtil.setLeftBorderColor(IndexedColors.BLUE.getIndex(), region, sheet);
// 合并单元格上边框样式
RegionUtil.setBorderTop(BorderStyle.DASH_DOT_DOT, region, sheet);
RegionUtil.setTopBorderColor(IndexedColors.LIGHT_ORANGE.getIndex(), region, sheet);
// 合并单元格右边框样式
RegionUtil.setBorderRight(BorderStyle.SLANTED_DASH_DOT, region, sheet);
RegionUtil.setRightBorderColor(IndexedColors.RED.getIndex(), region, sheet);
// 合并单元格下边框样式
RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, region, sheet);
RegionUtil.setBottomBorderColor(IndexedColors.GREEN.getIndex(), region, sheet);
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/lipinganq/article/details/78133753
内容来源于网络,如有侵权,请联系作者删除!