org.apache.poi poi-ooxml 5.2.3
package com.zjl.controller; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.core.io.ClassPathResource; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @RestController public class ExcelController { private Workbook workbook; private Sheet sheet; public ExcelController() throws IOException { workbook = new XSSFWorkbook(new ClassPathResource("sample.xlsx").getInputStream()); sheet = workbook.getSheetAt(0); } @GetMapping("/api/excel/preview") public List> previewExcel() { List> data = new ArrayList<>(); for (Row row : sheet) { List rowData = new ArrayList<>(); for (Cell cell : row) { rowData.add(getCellValueAsString(cell)); } data.add(rowData); } return data; } @PostMapping("/api/excel/edit") public ResponseEntity editExcel(@RequestParam("row") int row, @RequestParam("column") int column, @RequestParam("value") String value) { Row r = sheet.getRow(row); if (r == null) { r = sheet.createRow(row); } Cell c = r.getCell(column); if (c == null) { c = r.createCell(column); } c.setCellValue(value); try { FileOutputStream fileOut = new FileOutputStream("target/sample.xlsx"); workbook.write(fileOut); fileOut.close(); } catch (IOException e) { return ResponseEntity.badRequest().body("Error saving changes."); } return ResponseEntity.ok("Changes saved successfully."); } private String getCellValueAsString(Cell cell) { switch (cell.getCellType()) { case STRING: return cell.getStringCellValue(); case NUMERIC: return String.valueOf(cell.getNumericCellValue()); default: return ""; } } }
npm install vuetify axios
上一篇:潜在因果框架:一窥因果关系的秘密
下一篇:土木工程学报