Как заполнить xls файл без пустых строк? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать файл Excel для моего проекта.Моя цель - показать весь отдел и всех студентов, назначенных на этот конкретный отдел.Пока это то, что я сделал:

...
int rowNum = 4;//From row 0 to 3 was occupied as Header
for (Department department : departments) {
    Row row = sheet.createRow(rowNum++);
    row.createCell(0).setCellValue(department.getName());
    for (Students student: students) {
        row = sheet.createRow(rowNum++);
        if (department.getId() == student.getDepartmentId()) {
            row.createCell(0).setCellValue(student.getIdNumber());
            //and all other info such as name, gender, dob
        }
    }
}

Если выбрано одно отделение, то оно работает нормально, однако, если я решу получить все отделы , мой вывод будет выглядеть так:

Department A
//blank rows of about 20 were produced
201901010          Student A          Male          ...
201901011          Student B          Male          ...
//blank rows of about 950
Department B
//blank rows of about 40
201901071          Student X          Male          ...
201901072          Student Z          Male          ...
//blank rows of about 963
...

То, что я хочу, выглядит примерно так:

Department A
201901010          Student A          Male          ...
201901011          Student B          Male          ...
Department B
201901071          Student X          Male          ...
201901072          Student Z          Male          ...
...

Я пробовал разные вещи в моих rowNum переменных, но ни одна из них не работает.Некоторые просто распечатали весь мой отдел и множество пустых строк, а затем распечатали список студентов по последнему отделу.

1 Ответ

0 голосов
/ 22 марта 2019

Я только что заметил, что структура моего кода неверна:

if (department.getId() == student.getDepartmentId()) {
    row = sheet.createRow(rowNum++);
    ....
}

вместо:

row = sheet.createRow(rowNum++);
if (department.getId() == student.getDepartmentId()) {
    row.createCell(0).setCellValue(student.getIdNumber());
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...