gpt4 book ai didi

java - Poi Excel 无法应用背景颜色

转载 作者:行者123 更新时间:2023-12-01 22:11:51 27 4
gpt4 key购买 nike

我正在使用POI来生成Excel。我有一个场景,就像我想将背景应用于表格中的单元格行。但我无法做到这一点。我给出了下面的代码。请告诉我的代码中有什么错误,或者我正在执行的代码是否正确..

代码

    System.out.println("Called");
try {

XSSFWorkbook xb = new XSSFWorkbook();
XSSFSheet sheet = xb.createSheet(sheetName);
XSSFCellStyle cellStyle = xb.createCellStyle();
XSSFFont font = xb.createFont();
int rowIdx = 10;
short cellIdx = 1;

CommonUtils.getGlobalVariable("GLOBAL.M_COMP_CODE"));
int rowNo = 0;
// Row 1
XSSFCellStyle boldCellStyle = xb.createCellStyle();
XSSFFont boldFont = xb.createFont();
XSSFRow row1 = sheet.createRow(rowNo);
XSSFCell cell1 = row1.createCell(1);
boldFont.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
boldFont.setColor(new XSSFColor(Color.RED));
boldCellStyle.setAlignment(CellStyle.ALIGN_CENTER);
boldCellStyle.setFont(boldFont);
cell1.setCellValue(headingName);
sheet.addMergedRegion(CellRangeAddress.valueOf("B1:I1"));
cell1.setCellStyle(boldCellStyle);
XSSFCellStyle cellStyleAmount = xb.createCellStyle();
cellStyleAmount.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
rowNo++;
// Row 2
if ((String) addrDetails.get("COMP_NAME") != null) {
XSSFRow row2 = sheet.createRow(rowNo);
XSSFCell compNamecell = row2.createCell(1);
compNamecell.setCellStyle(cellStyle);
compNamecell.setCellValue("Company");
sheet.addMergedRegion(CellRangeAddress.valueOf("B2:B2"));
compNamecell = row2.createCell(2);
compNamecell
.setCellValue((String) addrDetails.get("COMP_NAME"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C2:G2"));
compNamecell.setCellStyle(cellStyle);
}
rowNo++;
// Row 3
if ((String) addrDetails.get("ADDR_NAME") != null) {
XSSFRow row3 = sheet.createRow(rowNo);
XSSFCell cell = row3.createCell(1);
cell = row3.createCell(1);
cell.setCellStyle(cellStyle);
cell.setCellValue("Address ");
sheet.addMergedRegion(CellRangeAddress.valueOf("B3:B3"));
cell = row3.createCell(2);
cell.setCellValue((String) addrDetails.get("ADDR_NAME"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C3:G3"));
cell.setCellStyle(cellStyle);
}
rowNo++;
if (addrDetails.get("COMP_ADD_1") != null) {
XSSFRow row4 = sheet.createRow(rowNo);
XSSFCell cell = row4.createCell(1);
cell = row4.createCell(1);
cell.setCellStyle(cellStyle);
cell.setCellValue("");
sheet.addMergedRegion(CellRangeAddress.valueOf("B4:B4"));
cell = row4.createCell(2);
cell.setCellValue((String) addrDetails.get("COMP_ADD_1"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C4:G4"));
cell.setCellStyle(cellStyle);
}
rowNo++;
if (addrDetails.get("COMP_ADD_2") != null) {
XSSFRow row5 = sheet.createRow(rowNo);
XSSFCell cell = row5.createCell(1);
cell = row5.createCell(1);
cell.setCellStyle(cellStyle);
cell.setCellValue("");
sheet.addMergedRegion(CellRangeAddress.valueOf("B5:B5"));
cell = row5.createCell(2);
cell.setCellValue((String) addrDetails.get("COMP_ADD_2"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C5:G5"));
cell.setCellStyle(cellStyle);
}
rowNo++;
if (addrDetails.get("COMP_ADD_3") != null) {
XSSFRow row6 = sheet.createRow(rowNo);
XSSFCell cell = row6.createCell(1);
cell = row6.createCell(1);
cell.setCellStyle(cellStyle);
cell.setCellValue("");
sheet.addMergedRegion(CellRangeAddress.valueOf("B6:B6"));
cell = row6.createCell(2);
cell.setCellValue((String) addrDetails.get("COMP_ADD_3"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C6:G6"));
cell.setCellStyle(cellStyle);
}
rowNo++;
if (addrDetails.get("CONTACT") != null) {
XSSFRow row7 = sheet.createRow(rowNo);
XSSFCell cell = row7.createCell(1);
cell = row7.createCell(1);
cell.setCellStyle(cellStyle);
cell.setCellValue("Contact");
sheet.addMergedRegion(CellRangeAddress.valueOf("B7:B7"));
cell = row7.createCell(2);
cell.setCellValue((String) addrDetails.get("CONTACT"));
sheet.addMergedRegion(CellRangeAddress.valueOf("C7:G7"));
cell.setCellStyle(cellStyle);
}
rowNo++;

String pattern = "###,###.##";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
// Row 8
XSSFRow row8 = sheet.createRow(rowNo);
XSSFCell cell = row8.createCell(1);
cell = row8.createCell(0);
cell.setCellStyle(cellStyle);
cell.setCellValue("Document No :");
cell = row8.createCell(1);
cell.setCellValue(fhdocNo);
cell.setCellStyle(cellStyle);
cell = row8.createCell(2);
cell.setCellStyle(cellStyle);
cell.setCellValue("From Date :");
cell = row8.createCell(3);
cell.setCellValue(fromDate);
cell.setCellStyle(cellStyle);
cell = row8.createCell(4);
cell.setCellStyle(cellStyle);
cell.setCellValue("To Date :");
cell = row8.createCell(5);
cell.setCellValue(toDate);
cell.setCellStyle(cellStyle);
cell = row8.createCell(6);
cell.setCellStyle(cellStyle);
cell.setCellValue("Period Type :");
cell = row8.createCell(7);
cell.setCellValue(period);
cell.setCellStyle(cellStyle);
rowNo++;
// Table Header
XSSFRow row9 = sheet.createRow(rowNo);
XSSFCell cell9 = row9.createCell(1);
XSSFCellStyle headerCellStyleAmount = xb.createCellStyle();
headerCellStyleAmount.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
XSSFFont minusIndicatorfont = xb.createFont();
minusIndicatorfont.setColor(new XSSFColor(Color.red));
headerCellStyleAmount.setFont(minusIndicatorfont);
XSSFRow xssfHeader = sheet.createRow(rowIdx);
XSSFColor color1 = new XSSFColor(Color.gray);
XSSFCellStyle headCellStyle;
headCellStyle = (XSSFCellStyle) cell9.getCellStyle();
headCellStyle.setFillBackgroundColor(new XSSFColor(new Color(216,
216, 216)));
cell9 = xssfHeader.createCell(1);
cell9.setCellStyle(cellStyle);
cell9.setCellValue("");
for (int i = 0; i < listSize; i++) {
XSSFCell xssfCell = xssfHeader.createCell(cellIdx++);
xssfCell.setCellValue(monthList.get(i).getSD_LABEL());
headCellStyle.setFillForegroundColor(color1);
headCellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
xssfCell.setCellStyle(headCellStyle);
}
rowIdx++;
xb.setSheetName(0, sheetName);
/*
* HttpServletResponse response = (HttpServletResponse)
* externalContext .getResponse(); OutputStream os =
* response.getOutputStream(); wb.write(os);
* response.setHeader("Content-Disposition",
* "attachment; filename=\"" + fileName + ".xls");
* response.getOutputStream().flush();
* response.getOutputStream().close();
* FacesContext.getCurrentInstance().responseComplete();
*/
ExternalContext externalContext = FacesContext.getCurrentInstance()
.getExternalContext();
writeExcelToResponse(externalContext, xb, fileName);
} catch (Exception e) {
e.printStackTrace();
}

最佳答案

如果您使用此代码片段,它将起作用:

XSSFCellStyle style = workbook.createCellStyle();
XSSFColor myColor = new XSSFColor(Color.RED);
style.setFillForegroundColor(myColor);
style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);

我可以给你这个link其中描述了如何使用 XSSF。主要更改是从工作簿中创建一个新的 XSSFCellStyle 并设置填充模式。

关于java - Poi Excel 无法应用背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com