Как отформатировать Excel с помощью Java Spring? - PullRequest
0 голосов
/ 30 января 2019

Я экспортировал файл Excel, как изображение: введите описание изображения здесь

Я хочу отредактировать «align_center» для текста на листе.Когда я объединяю два ряда, я хочу отформатировать для него «центр».Это код его бэк-энда:

CellStyle headerCellStyle = workbook.createCellStyle();
        headerCellStyle.setFont(headerFont);
        headerCellStyle.setAlignment(HorizontalAlignment.CENTER);

        // Row for Header
        Row headerRow = sheet.createRow(0);

        // Header
        for (int col = 0; col < COLUMNTASK.length; col++) {
            Cell cell = headerRow.createCell(col);
            cell.setCellValue(COLUMNTASK[col]);
            cell.setCellStyle(headerCellStyle);
        }
for (int col = 0; col < COLUMNTASK.length; col++) {
            Cell cell = headerRow.createCell(col);
            cell.setCellValue(COLUMNTASK[col]);
            cell.setCellStyle(headerCellStyle);
        }
        int count;
        for (int i = 0; i < allTasks.size()-1; i++) {
            count = i;
            for (int j = count+1; j < allTasks.size(); j++) {
                if (allTasks.get(i).getUserName().equals(allTasks.get(j).getUserName())) {
                    count++;
                } else if (count != i) {
                    sheet.addMergedRegion(new CellRangeAddress(i+1, count+1, 0, 0));
                    i = count;
                } else if (count == i) {
                    break;
                }

                if (count == allTasks.size()-1) {
                    sheet.addMergedRegion(new CellRangeAddress(i+1, count+1, 0, 0));
                    i = count;
                    break;
                }
            }
        }
        int rowIdx = 1;
        for (WorkingTimeReportResponse workingTimeReportResponse : allTasks) {
            Row row = sheet.createRow(rowIdx++);

            row.createCell(0).setCellValue(workingTimeReportResponse.getUserName());
            row.createCell(1).setCellValue(workingTimeReportResponse.getProjectName());
            row.createCell(2).setCellValue(workingTimeReportResponse.getIssue());
            row.createCell(3).setCellValue(workingTimeReportResponse.getTotalHours());
        }

1 Ответ

0 голосов
/ 30 января 2019

Я думаю, что необходимо установить стиль во всех ячейках, как вы делали в ячейке заголовков.

Сначала создайте стиль для обычных ячеек:

CellStyle regularCellStyle = workbook.createCellStyle();
regularCellStyle setAlignment(HorizontalAlignment.CENTER);

После этого создайте ячейкуи сохраните его в переменной.

Cell cellA = row.createCell(0);
cellA.setCellValue(workingTimeReportResponse.getUserName());
cellA.setCellStyle(regularCellStyle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...