Ajax上傳.xlsx文件並解析

一、首先必須配置beanhtml

<bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760"/>
        <property name="resolveLazily" value="true"/>
        <property name="maxInMemorySize" value="4096"/>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

二、ftl頁面代碼java

<form id="fileForm" method="post" enctype="multipart/form-data">
        <input type="text" id="someText" name="someText">
        <input type="file" name="file" id="file">
</form>

三、js代碼web

var someText= $("#someText").val();
var file = $("#file")[0].files[0]; //獲取標籤值好像函數與瀏覽器不兼容,網上的大可能是經過$("#file").files[0]獲取,          
                      我這裏必須經過$("#file")[0].files[0]才能獲取到值        
var formData = new FormData();    
formData.append('someText', someText);
formData.append('file', file);

$.ajax({
             type:"post",
             url:'請求路徑',
             data:formData,
             dataType:'json',
             cache:false,
             contentType: false, 
             processData: false,
             success: function(data) {
         	// 結果處理
         			}
        });    

四、後臺代碼ajax

@RequestMapping(value = "路徑", method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public Object uploadFile(@RequestParam(value = "someText", required = false) String someText, 
@RequestParam(value = "file", required = false) MultipartFile file, 
HttpServletRequest request) {//required = false才能獲取到值            
	XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
  XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());        
  for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
       XSSFSheet sheetAt = workbook.getSheetAt(numSheet);
       if (sheetAt == null) {
           continue;
           }
       // 循環行Row
       for (int rowNum = 0; rowNum <= sheetAt.getLastRowNum(); rowNum++) {
            XSSFRow row = sheetAt.getRow(rowNum);
            if (row == null) {
                continue;
            }
            // 循環列Cell
      for (int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) {
          //在此可進行獲取單元格值併入庫
										getValue(row,cellNum);
       	}
      		}
   	}  
}   
//單元格類型轉換並獲取值
private String getValue(XSSFRow row, int cellNum) {
        XSSFCell cell = row.getCell(cellNum);
        if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
            return String.valueOf(cell.getBooleanCellValue());
        } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
            return String.valueOf((int) cell.getNumericCellValue());
        } else {
            return String.valueOf(cell.getStringCellValue()).equals("") ? "" : String
                    .valueOf(cell.getStringCellValue());
        }
}
相關文章
相關標籤/搜索