POI HSSFDataBarFormatting.setIconOnly(false)是无用的

时间:2019-02-18 07:06:56

标签: apache-poi

我使用POI类HSSFSheetConditionalFormatting在Excel中生成数据栏。我希望数据栏和原始数据都显示在单元格中,如图所示expected result

,所以我使用HSSFDataBarFormatting.setIconOnly(false)函数,但是它不起作用。 结果文件为actual result。 这是我的测试代码。 我在做什么错了?

static void dataBars2(HSSFSheet sheet) {

		CellStyle cs = sheet.getWorkbook().createCellStyle();
		cs.setDataFormat((short) 10);
		cs.setAlignment(HorizontalAlignment.CENTER);

		CellStyle cs_header = sheet.getWorkbook().createCellStyle();


		cs_header.setFillPattern(FillPatternType.FINE_DOTS);
		cs_header.setFillForegroundColor(IndexedColors.BLUE_GREY.index);
		cs_header.setFillBackgroundColor(IndexedColors.BLUE_GREY.index);

		cs_header.setAlignment(HorizontalAlignment.CENTER);

		Row r = sheet.createRow(0);
		r.createCell(0).setCellValue("Data Bars");
		r.createCell(1).setCellValue("Green Positive");
		for (int i = 0; i <= 8; i++) {
			r = sheet.createRow(i + 1);
			Cell c = r.createCell(1);
			c.setCellValue(0.1 * i);
			c.setCellStyle(cs);
		}

		HSSFSheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();

		ExtendedColor color = sheet.getWorkbook().getCreationHelper().createExtendedColor();
		color.setARGBHex("FFF8696B");
		CellRangeAddress[] regions = {CellRangeAddress.valueOf("B2:B10")};
		HSSFConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(color);
		HSSFDataBarFormatting db1 = rule1.getDataBarFormatting();
		db1.getMinThreshold().setRangeType(RangeType.MIN);
		db1.getMaxThreshold().setRangeType(RangeType.MAX);
		db1.setWidthMin(0);
		db1.setIconOnly(false);
		db1.setLeftToRight(false);
		sheetCF.addConditionalFormatting(regions, rule1);
	}

0 个答案:

没有答案