Чтобы создать новый лист, вам нужен второй объект HSSFSheet и его нужно инициализировать.
Я добавил poi jar из URL для доступа к классу HSSFSheet.
Я уже подготовил демонстрацию с библиотекой HSSF, используя Список временных данных, чтобы вы могли иметь небольшое представление о том, как использовать эту библиотеку для создания файла Excel при создании нескольких листов.
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Excel {
public static void main(String[] args) {
int col = 1;
try {
String filename = "I:\\export.csv";
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("FirstSheet");
List rs7 = new ArrayList();
rs7.add("06/27/2019");
List rs8 = new ArrayList();
rs8.add("06/23/2019");
List rs11 = new ArrayList();
rs11.add("06/23/2019");
List rs12 = new ArrayList();
rs12.add("06/26/2019");
List rs15 = new ArrayList();
rs15.add("06/26/2019");
List rs16 = new ArrayList();
rs16.add("06/25/2019");
int r7,r8, r11,r12, r15,r16;
r7=r8=r11=r12=r15=r16=0;
sheet.createRow(0).createCell(1).setCellValue("SL");
while (r7<rs7.size()) {
HSSFRow SL = sheet.createRow(col++);
SL.createCell(1).setCellValue(""+rs7.get(r7++));
}
while (r11<rs11.size()) {
HSSFRow SL = sheet.createRow(col++);
SL.createCell(1).setCellValue(rs11.get(r11++) + " (FIRST HALF DAY)");
}
while (r15<rs15.size()) {
HSSFRow SL = sheet.createRow(col++);
SL.createCell(1).setCellValue(rs15.get(r15++) + " (SECOND HALF DAY)");
}
HSSFSheet sheet2 = workbook.createSheet("SecondSheet");
sheet2.createRow(0).createCell(1).setCellValue("C-OFF");
col=1;
while (r8<rs8.size()) {
HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(""+rs8.get(r8++));
}
while (r12<rs12.size()) {
HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(rs12.get(r12++) + " (FIRST HALF DAY)");
}
while (r16<rs16.size()) {
HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(rs16.get(r16++) + " (SECOND HALF DAY)");
}
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
col = 0;
} catch (Exception ex) {
System.out.println(ex);
}
}
}
Если вам не нужно создавать несколько листов и вам нужно отображать данные только в одном листе данных, тогда вы заменяете вышеуказанную вторую часть на приведенный ниже код, который поможет вам понять использование.
//HSSFSheet sheet2 = workbook.createSheet("SecondSheet");
sheet.getRow(0).createCell(2).setCellValue("C-OFF");
// sheet2.createRow(0).createCell(1).setCellValue("C-OFF");
col=1;
while (r8<rs8.size()) {
sheet.getRow(col++).createCell(2).setCellValue(""+rs8.get(r8++));
/*HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(""+rs8.get(r8++));*/
}
while (r12<rs12.size()) {
sheet.getRow(col++).createCell(2).setCellValue(""+rs12.get(r12++)+ " (FIRST HALF DAY)");
/*HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(rs12.get(r12++) + " (FIRST HALF DAY)");*/
}
while (r16<rs16.size()) {
sheet.getRow(col++).createCell(2).setCellValue(""+rs16.get(r16++)+ " (SECOND HALF DAY)");
/*HSSFRow leave_date = sheet2.createRow(col++);
leave_date.createCell(1).setCellValue(rs16.get(r16++) + " (SECOND HALF DAY)");*/
}
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
col = 0;