Получение и определение значения ячейки в Excel - PullRequest
0 голосов
/ 15 января 2020

Надеюсь, я объясню достаточно ясно, у меня есть список объектов (каждый объект имеет 3 свойства), эти объекты печатаются в файл xls, я пытаюсь найти ячейку, в которой значение было назначено первым и последним, чтобы получить ссылки и setFormula, чтобы получить сумму всех средних значений Кажется, для меня проблема найти индексы ячейки

public Cell locateCell(List<Invoice> invoices){
    BigDecimal firstGeneralTotal = invoices.get(0).generalTotal();
    BigDecimal lastGeneralTotal = invoices.get(invoices.size()-1).generalTotal();

}

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Basi c доступ с использованием POI будет выглядеть следующим образом:

XSSFWorkbook wb = new XSSFWorkbook( … );
XSSFSheet sheet = workbook1.getSheetAt(0);
XSSFRow row = sheet.getRow(0);
XSSFCell cell = row.getCell(0);

String value = cell.getStringCellValue();

Вместо использования getStringCellValue вы также можете использовать один из этих методов:

cell.getCellFormula()
cell.getNumericCellValue()
cell.getBooleanCellValue()
cell.getErrorCellValue()

Соответственно, вы можете выполните cell.setCellFormula (Строковая формула), чтобы установить ячейку.

Если вы хотите добавить формуляр в конец таблицы, содержащей сумму, вы можете использовать ссылки на ячейки, если хотите. В этом случае вам нужно найти последнюю строку в листе Excel :

sheet.getPhysicalNumberOfRows()

Затем вы можете добавить новую строку в конец вашего листа:

sheet.createRow(sheet.getPhysicalNumberOfRows()+1);

и поместите вашу сумму в соответствующую ячейку.

Кстати, я не уверен, что буду использовать CellReferences, поскольку они могут содержать ссылки и на другие листы. Если бы я работал только с одним листом, я бы попытался использовать индексные номера и перевести их соответственно в A1: A200 et c.

. Помогает ли это вам? Если я неправильно понял ваш вопрос, дайте мне знать в комментариях, я могу обновить свой ответ, если это возможно.

0 голосов
/ 15 января 2020
 public String getCellReference(int rowPosition, int cellPosition) {
    CellReference reference = new CellReference(rowPosition, cellPosition);
    return reference.formatAsString();
}

public String getCoefficientFormula(int startRow, int firstCell, int endRow, int lastCell) {
    String firstReference = getCellReference(startRow, firstCell);
    String lastReference = getCellReference(endRow, lastCell);
    return firstReference + "/" + lastReference;
}

public String getSumFormula(int startRow, int endRow, int start, int finish) {
    String startCell = getCellReference(startRow,start);
    String finishCell = getCellReference(endRow,finish);
    return "SUM(" + startCell + ":" + finishCell + ")";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...