Escrita a partir de ArrayList para folha de Excel ListIterator
-
21-12-2019 - |
Pergunta
Eu tenho um ArrayList que contém informações sobre funcionários, tais como nome, sName e endereço.Eu estou escrevendo isto para uma pasta de trabalho do Excel usando o apache poi.
Na folha de excel que eu quero todas as informações sobre um funcionário para vir na mesma linha.Eu consegui escrever o primeiro nome na linha 1 e célula de 0 (linha 0 detém títulos).Tudo é verticalmente em boa ordem.Ao tentar adicionar um apelido tudo começa a saltar aqui e ali.
Como faço para obter o sName escrito no lugar certo?
Aqui está parte da minha código do excel
private void writeEmployeeInfo() {
ListIterator<Employee> employeeListIterator = Employee
.getEmployeeList().listIterator();
int rowIndex = 1;
int cellIndex = 0;
while (employeeListIterator.hasNext()) {
Employee employee = employeeListIterator.next();
Row row = sheet.createRow(rowIndex++);
Cell cell = row.createCell(cellIndex);
cell.setCellValue(employee.getfName());
// tentando adicionar o sobrenome de funcionários na direita da célula.
while(employeeListIterator.hasNext()){
Employee emp = employeeListIterator.next();
row = sheet.createRow(rowIndex++);
cell = row.createCell(cellIndex++);
cell.setCellValue(emp.getsName());
}
}
}
Este é meu primeiro post aqui, então se eu tiver escrito ou feito coisas que eu um pobre maneira, por favor, me diga o que fazer, então vai ser fácil para você as pessoas a entender a minha pergunta.
Aqui está um link para o projeto, se você precisar de ver mais código: http://1drv.ms/1kSGfDm
Solução
Você não postar como você está adicionando ao outro células.Tente algo como isso:
private void writeEmployeeInfo() {
ListIterator<Employee> employeeListIterator = Employee
.getEmployeeList().listIterator();
int rowIndex = 1;
while (employeeListIterator.hasNext()) {
Employee employee = employeeListIterator.next();
Row row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(employee.getfName());
row.createCell(1).setCellValue(employee.getSName());
row.createCell(2).setCellValue(employee.getAddress);
}
}