POI HSSFDataBarFormatting.setIconOnly (false) бесполезен - PullRequest
0 голосов
/ 18 февраля 2019

Я использую класс POI HSSFSheetConditionalFormatting для создания панели данных в Excel.Я хочу, чтобы панель данных и необработанные данные отображались в ячейке, поскольку на рисунке показано ожидаемый результат

, поэтому я использую функцию HSSFDataBarFormatting.setIconOnly (false), но она не работает.файл результата - фактический результат .Вот мой тестовый код.Что я делаю не так?

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);
	}
...