#spring-boot #csv #apache-poi #opencsv
#spring-boot #csv #apache-poi #opencsv
Вопрос:
У меня есть REST API в приложении Spring Boot, которое принимает параметр типа Multipart file.
Существует вероятность, что пользователь может импортировать либо файл CSV, либо файл Excel (.xlsx / .xsl) огромного размера, который необходимо обработать.
Я использую Apache POI для чтения файла типа Excel, и он работает нормально. В моем существующем коде, как мне эффективно обрабатывать чтение файлов CSV
Ниже приведен код чтения файла Excel:
@RequestMapping(value="/read", method = RequestMethod.POST)
@Transactional
public Map<String, String> read(@RequestParam("file") MultipartFile file) {
Map<String, String> response = new ArrayList();
if (!file.isEmpty()) {
ByteArrayInputStream stream;
Workbook wb;
StringBuilder contentSb = new StringBuilder();
try {
stream = new ByteArrayInputStream(file.getBytes());
wb = WorkbookFactory.create(stream);
org.apache.poi.ss.usermodel.Sheet sheet = wb.getSheetAt(wb.getActiveSheetIndex());
Iterator<Row> rowIterator = sheet.rowIterator();
System.out.println("Processing Excel file");
for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex ) {
Row row = sheet.getRow(rowIndex);
if (row != null) {
Cell cell = row.getCell(0);
if (cell != null) {
contentSb.append(cell.getStringCellValue() ",");
}
}
}
System.out.println("Processed Excel file");
return response;
} catch (Exception e) {
e.printStackTrace();
}
}
else {
return response;
}
}
Заранее благодарю вас!