#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
метод.