Заполнение таблицы в Apache POI

266
20 февраля 2018, 06:17

Начинаю изучать ApachePOI. Столкнулась с проблемой заполнения таблицы. Код, приведенный ниже, создает две страницы, названия рядов и элементы, такая себе "окантовка" таблицы в файле xls. данные на странице Two такие же.

  public class Excel {
    Workbook wb = new XSSFWorkbook();
    Sheet sheet;
    public void Excel() throws Exception {
 ArrayList<Integer> num = new ArrayList<>();
        for(int i =1;i<=30;i++) {
            num.add(i);
        }
        ArrayList<String> strings = new ArrayList<>();
        strings.add("One");
        strings.add("Two");
        ArrayList<Integer> elements = new ArrayList<>();
        elements.add(1);
        elements.add(2);
        elements.add(3);
        elements.add(4);
        elements.add(5);
        ArrayList<String> names = new ArrayList<>();
        names.add("Name1");
        names.add("Name2");
        names.add("Name3");
              for (int i = 0; i < strings.size(); i++) {//названия страниц
            sheet = wb.createSheet(strings.get(i));
            Row row = sheet.createRow(0);
            row.createCell(0).setCellValue("Count of elements");
            for (int cellCounter = 1; cellCounter <= elements.size(); cellCounter++) {
                    row.createCell(cellCounter).setCellValue(elements.get(cellCounter - 1));
                }
                   for (int rowCounter = 1; rowCounter <= names.size(); rowCounter++) {
                sheet.createRow(rowCounter).createCell(0).setCellValue(names.get(rowCounter-1));
                  for(int j=0; j<=num.size(); j++){
                      int cellIndex=1;
                      sheet.createRow(rowCounter).createCell(cellIndex).setCellValue(j);
                  }
                sheet.autoSizeColumn(0);
                       }
                   }
                FileOutputStream fileOut = new FileOutputStream("C:/Users/Home/Desktop/table.xls");
                wb.write(fileOut);
                fileOut.close();
            }
        }

теперь вопрос:допустим, есть массив чисел от 1 до 30. и эти числа нужно разместить, что бы получилось так: и как это сделать? У меня если что-то и получается, то пропадает часть уже созданной таблицы. Но целую таблицу не знаю как сделать.

Answer 1
 public void create() throws Exception {
    Workbook wb = new XSSFWorkbook();
    Sheet sheet;
    int num = 1;
    ArrayList<String> strings = new ArrayList<>();
    strings.add("One");
    strings.add("Two");
    ArrayList<Integer> elements = new ArrayList<>();
    elements.add(1);
    elements.add(2);
    elements.add(3);
    elements.add(4);
    elements.add(5);
    ArrayList<String> names = new ArrayList<>();
    names.add("Name1");
    names.add("Name2");
    names.add("Name3");
    for (int i = 0; i < strings.size(); i++) {//названия страниц
        sheet = wb.createSheet(strings.get(i));
        int rowCounter = 0;
        Row row = sheet.createRow(0);
        row.createCell(0).setCellValue("Count of elements");
        for (int cellCounter = 1; cellCounter <= elements.size(); cellCounter++) {
            row.createCell(cellCounter).setCellValue(elements.get(cellCounter - 1));
        }
        sheet.autoSizeColumn(rowCounter);
        rowCounter++;
        for (; rowCounter <= names.size(); rowCounter++) {
            Row rt = sheet.createRow(rowCounter); //Создаем строку только ОДИН раз
            rt.createCell(0).setCellValue(names.get(rowCounter - 1));
            for (int cellIndex = 1; cellIndex <= 5; cellIndex++) {
                rt.createCell(cellIndex).setCellValue(num);
                num++;
            }
        }
    }
    File file = File.createTempFile("questions787162", ".xlsx");
    try (FileOutputStream fos = new FileOutputStream(file)) {
        wb.write(fos);
    }
    System.out.println(file.getAbsolutePath());
}

Кстати, советую не держать столько логики в конструкторе.

READ ALSO
Не работает toggler меню в Bootstrap 4

Не работает toggler меню в Bootstrap 4

Не работает toggler меню в Bootstrap 4В чем причина?

370
Не выводит шаблон django

Не выводит шаблон django

Добрый день! Версия Django = 111 После ввода неправильного пароля перекидывает на пустую страницу без какого-либо текста

268
Отправка и Проверка ответа из БД

Отправка и Проверка ответа из БД

Привет, я не силён в php помогите исправить и довести код до ума

209
html. Проблемы с фоновым изображением [дубликат]

html. Проблемы с фоновым изображением [дубликат]

На данный вопрос уже ответили:

238