excel 树结构json_写一个上传excel表格,解析成 json 的接口
IDE:IDEA
編程語言:JAVA
controller 類
業務處理類
model 類
Controller
import com.你的路徑.ImportTaskExcel;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@CrossOrigin
@Service
public class ProjectTaskExcelController {
//從表格導入任務;
//先將excel解析為json,然后將json數據進行處理,保存到數據庫
@RequestMapping(value = "/import_excel_task",headers = "content-type=multipart/*", method = RequestMethod.POST)
@ResponseBody
public Map importExcel(HttpServletRequest request, HttpServletResponse response, @RequestParam MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
String type = file.getContentType();
System.out.println("目標文件名稱:" + originalFilename + ",目標文件類型:" + type);
InputStream is = file.getInputStream();
ImportTaskExcel importExcel = new ImportTaskExcel();
List list= importExcel.importDataFromExcel( is, originalFilename);
for(int i = 0;i
System.out.println(list.get(i).toString());
}
Map map = new HashMap<>();
map.put("list", list);
map.put("code", 0);
return map;
}
}
業務處理類
```
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ImportTaskExcel {
private static final Logger logger = LoggerFactory.getLogger("ImportTaskExcel");
/**
* @Title: createWorkbook
* @Description: 判斷excel文件后綴名,生成不同的workbook * @param @param is
* @param @param excelFileName
* @param @return
* @param @throws IOException
* @return Workbook
* @throws
*/
public Workbook createWorkbook(InputStream is, String excelFileName) throws IOException {
if (excelFileName.endsWith(".xls")) {
return new HSSFWorkbook(is);
}else if (excelFileName.endsWith(".xlsx")) {
return new XSSFWorkbook(is);
}
return null;
}
/**
* @Title: getSheet
* @Description: 根據sheet索引號獲取對應的sheet
* @param @param workbook
* @param @param sheetIndex
* @param @return
* @return Sheet
* @throws
*/
public Sheet getSheet(Workbook workbook, int sheetIndex){
return workbook.getSheetAt(0);
}
public List importDataFromExcel(InputStream is, String excelFileName){
List list = new ArrayList();
try {
//創建工作簿
Workbook workbook = this.createWorkbook(is, excelFileName);
//創建工作表sheet
Sheet sheet = this.getSheet(workbook, 0);
//獲取sheet中數據的行數
int rows = sheet.getPhysicalNumberOfRows();
//獲取表頭單元格個數
int cells = sheet.getRow(0).getPhysicalNumberOfCells();
if(cells > 8) {
cells = 8;
}
for (int i = 1; i < rows; i++) {//第一行為標題欄,從第二行開始取數據
//利用反射,給JavaBean的屬性進行賦值
ExcelTaskRow vo = new ExcelTaskRow();
Field[] fields = vo.getClass().getDeclaredFields();
Row row = sheet.getRow(i);
int index = 0;
while (index < cells) {
Cell cell = row.getCell(index);
總結
以上是生活随笔為你收集整理的excel 树结构json_写一个上传excel表格,解析成 json 的接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白户和纯白户是什么意思
- 下一篇: 塔菲尔曲线斜率的大小_分段函数函数值(自