Установка формулы ячейки в цикле

#java #apache-poi

#java #apache-poi

Вопрос:

Как я смогу установить формулу ячейки в цикле в Apache POI?

Вот информация, подтверждающая мой вопрос:

Ячейка C1 содержит формулу SUM(C6: C7), которую можно выполнить простым жестким кодированием формулы myCell.setCellFormula(«СУММА (C6: C7)»). С другой стороны:

Это мой желаемый результат. Например, я хочу установить формулу для ячеек C1, D1 и E1. Как это можно сделать в цикле?

Зачем мне это нужно в цикле? — Жесткое кодирование было бы утомительным. 3 ячейки — это просто пример. В настоящее время у меня есть сотни ячеек, ожидающих своей формулы. — Количество строк не указано, оно будет основано на количестве строк, созданных программой.

Что я сделал? — Погуглил. — Искал похожий вопрос.

я пытался так

 int lastRownum = dataMap.size();
int i = 1;
char c;

for(c = 'A'; c <= 'Z'; c  ){
System.out.println();
sheet.createRow(lastRownum   1).createCell(i).setCellFormula("SUM('" c "'4:'" c "''" lastRownum "')");
i  ;
}
  

я ожидал, что результат получит сумму каждого столбца листа

Комментарии:

1. Не совсем понятно, чего именно вы хотите достичь, а также что не так с этим кодом

2. sheet.createRow(lastRownum 1).createCell(i).setCellType(HSSFCell.CELL_TYPE_FORMULA).setCellFormula("SUM('" c "'4:'" c "''" lastRownum "')");

3. Взгляните на CellReference . С помощью этого класса ссылка на ячейку может быть создана с использованием числовых строк и столбцов. Затем formatAsString метод получает строку типа A1 . Также у этого класса есть convertNumToColString метод.