Начинаю изучать 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. и эти числа нужно разместить, что бы получилось так: и как это сделать? У меня если что-то и получается, то пропадает часть уже созданной таблицы. Но целую таблицу не знаю как сделать.
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());
}
Кстати, советую не держать столько логики в конструкторе.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день! Версия Django = 111 После ввода неправильного пароля перекидывает на пустую страницу без какого-либо текста
Привет, я не силён в php помогите исправить и довести код до ума