Java создает Excel со стилями

У меня проблемы при присоединении к стилям и шрифтам. Наконец, когда я создал excel, excel добился успеха, но у моего excel нет стиля и шрифта, у него нет ничего, только данные, мне нужен цвет фона: красный и сплошной белый цвет в строке == 0

Мой код:

try {
    String filename = pathTempdownloadFile;
    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet(eyelash);

    CellStyle backgroundStyle = workbook.createCellStyle();
    HSSFFont font = workbook.createFont();
    backgroundStyle.setFillBackgroundColor(IndexedColors.RED.getIndex());
    font.setColor(IndexedColors.WHITE.getIndex());

    HSSFRow rowhead = sheet.createRow((short) 0);
    rowhead.createCell(0).setCellValue("YEAR");
    rowhead.createCell(1).setCellValue("MONTH");
    rowhead.createCell(2).setCellValue("NAME)");
    rowhead.createCell(3).setCellValue("SURNAME");

    rowhead.setRowStyle(backgroundStyle);
    backgroundStyle.setFont(font);

    FileOutputStream fileOut = new FileOutputStream(filename);
    workbook.write(fileOut);
    fileOut.close();
    workbook.close();

} catch (Exception ex) {
    System.out.println(ex);
}

Повторите: я могу создать Excel с данными, но в My excel нет стиля и шрифта.

Перед созданием ячеек следует выполнить форматирование, иначе ничего не произойдет. Так что попробуйте изменить порядок или все остальное. Сначала установите шрифт backgroundStyle.setFont(font);, прежде чем использовать HSSFRow rowhead = sheet.createRow((short) 0);, затем используйте rowhead.setRowStyle(backgroundStyle); и, наконец, создайте свои ячейки rowhead.createCell(0).setCellValue("YEAR");.

sorifiend 19.07.2018 09:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно работать:

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();

HSSFFont font = workbook.createFont();
font.setColor(HSSFColor.WHITE.index);
HSSFCellStyle style = workbook.createCellStyle();
style.setFont(font);
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFillForegroundColor(HSSFColor.RED.index);


List<String> header = Arrays.asList(new String [] {"YEAR", "MONTH", "NAME", "SURNAME"});

HSSFRow rowhead = sheet.createRow((short) 0);
int cellnum = 0;
for (String s : header) {
    HSSFCell cell = rowhead.createCell(cellnum++);
    cell.setCellValue(s);
    cell.setCellStyle(style);
}


FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
workbook.close();

попробуйте еще раз пожалуйста

Florian Kling 19.07.2018 09:35

«ГОД, МЕСЯЦ, ИМЯ, ФАМИЛИЯ» в той же ячейке ... xD

EduBw 19.07.2018 09:38

Извините, в массиве была только одна строка вместо ваших четырех

Florian Kling 19.07.2018 09:51

Другие вопросы по теме