Добрый день!
Прошу подсказать как через Apache POI библиотеку выгрузить данные из Excel так, чтобы их можно было поместить в мапу. Например в файле есть колонка firstname и колонка interaction, нужно их поместить в мапу так, чтобы каждому имени соответствовала сумма всех его интеракций, т.е. ключом мапы должна быть firstname , а значением сумма соответствующих ему интеракций. Т.е. например для Denis сумма будет равна 7.
Maven POM:
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
</dependencies>
Java Code:
public class Main {
public static void main(String[] args) throws IOException, InvalidFormatException {
Map<String, Integer> interactions = new HashMap<>();
Workbook workbook = WorkbookFactory.create(Main.class.getClassLoader().getResourceAsStream("example.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
DataFormatter dataFormatter = new DataFormatter();
sheet.forEach(row -> {
String name = dataFormatter.formatCellValue(row.getCell(0));
Integer interaction = Integer.parseInt(dataFormatter.formatCellValue(row.getCell(1)));
if(!interactions.containsKey(name)) {
interactions.put(name, 0);
}
interactions.put(name, interactions.get(name)+interaction);
});
workbook.close();
System.out.println(interactions);
}
}
Output: {Mihail=9, Petr=10, Grigory=8, Denis=7}
Чисто алгоритмически задача решается так: - Открываем книгу на чтение - Берем первый лист - Берем итератор по строкам, идем по нему - В каждой строке берем итератор по ячейкам, идем по нему, читаем первую ячейку, проверяем есть ли в мапе по этому ключу значение. Если есть, прибавляем к нему значение второй ячейки, иначе кладем в мапу значение второй ячейки, по ключу = значению первой ячейки, переходим к следущей строке - Идем пока не закончатся строки - ?????? - PROFIT!!!1
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости