我正在使用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();
}
ApachePOI4.0.0答案。如何设置Excel单元格的背景色:
//create workbook/sheet/row/cell
IndexedColorMap colorMap = outputWorkbook.getStylesSource().getIndexedColors();
java.awt.Color pigeonBlue = new java.awt.Color(189, 215, 238);
XSSFColor myBackgroundColor = new XSSFColor(pigeonBlue, colorMap);
XSSFCellStyle myCellStyle = outputWorkbook.createCellStyle();
myCellStyle.setFillForegroundColor(myBackgroundColor);
myCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
outputCell.setCellStyle(myCellStyle);
outputCell.setCellValue("Hi There");
// write & close workbook
如果使用此代码段,它将起作用:
XSSFCellStyle style = workbook.createCellStyle();
XSSFColor myColor = new XSSFColor(Color.RED);
style.setFillForegroundColor(myColor);
style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
我可以给你这个链接,其中描述了如何使用XSSF。主要更改是在工作簿中创建一个新的XSSFCellStyle
,并设置填充模式。
null 现在使用类:
本文向大家介绍改变iOS应用中UITableView的背景颜色与背景图片的方法,包括了改变iOS应用中UITableView的背景颜色与背景图片的方法的使用技巧和注意事项,需要的朋友参考一下 改变UITableView的header、footer背景颜色 改变UITableView的header、footer背景颜色,这是个很常见的问题。之前知道的一般做法是,通过实现tableView: view
问题内容: 我发现,如果将CSS背景应用于,则它将占用整个页面(无论实际的高度或宽度是多少)。 但是,如果您同时对和都应用CSS背景,则的背景 不会占用整个页面 。 这是预期的行为吗? 我该如何叠加两个全屏背景(例如,背景色和半透明图像?) 问题答案: 这是正确的行为。1在标准模式下,,以及,不立即采取了视区的整个高度,即使它出现,所以当你只应用背景后者。实际上,如果您不为其提供自己的背景,则该元
问题内容: 我有一个。当用户悬停div时,我想用rgba颜色()覆盖背景图像。 我想知道是否有一个一格解决方案(即没有多个div,一个用于图像,一个用于颜色,等等)。 我尝试了多种方法: 而这个CSS: 我看到的唯一选择是制作另一个具有覆盖层的图像,使用JavaScript预加载然后使用。但是,我想要一个仅CSS的解决方案(更整洁;更少的HTTP请求;更少的硬盘)。有没有? 问题答案: Peter
我想知道这一点,经过一点挖掘,找到了这个资源,链接在这个答案中。 该资源指出: 背景与背景色 比较18个色板在页面上呈现100次为小矩形,一次带有背景,一次带有背景颜色。 现在,我可以想象要快得多,因为资源也认为: 我认为当浏览器看到
在多个浏览器中最兼容的最佳做法是什么: 或 还是最好同时使用这两种方法来涵盖更多内容: