邏輯流程:後台獲取到檔案流,儲存到本地,使用poi讀取本地儲存的資料並進行解析。
關鍵jar包:
import org.apache.poi.hssf.usermodel.hssfcell;
import org.apache.poi.hssf.usermodel.hssfdateutil;
import org.apache.poi.hssf.usermodel.hssfrow;
import org.apache.poi.hssf.usermodel.hssfsheet;
import org.apache.poi.hssf.usermodel.hssfworkbook;
import org.apache.poi.poifs.filesystem.poifsfilesystem;
import org.springframework.stereotype.controller;
後台檔案儲存介面。
檔案解析方法(從某位前輩那邊拿過來的,做了些修改,時間有點長記不清是哪位了,如果看到了聯絡我,我會標明出處)
static string getdata(file file, int ignorerows) throws filenotfoundexception, ioexception
int temprowsize = row.getlastcellnum() + 1;
if (temprowsize > rowsize)
string values = new string[rowsize];
arrays.fill(values, "");
boolean hasvalue = false;
for (short columnindex = 0; columnindex <= row.getlastcellnum(); columnindex++) else
} else
break;
case hssfcell.cell_type_formula:
// 匯入時如果為公式生成的資料則無值
if (!cell.getstringcellvalue().equals("")) else
break;
case hssfcell.cell_type_blank:
break;
case hssfcell.cell_type_error:
value = "";
break;
case hssfcell.cell_type_boolean:
value = (cell.getbooleancellvalue() == true ? "y" : "n");
break;
default:
value = "";}}
if (columnindex == 0 && value.trim().equals(""))
values[columnindex] = righttrim(value);
hasvalue = true;
}if (hasvalue) }}
in.close();
string returnarray = new string[result.size()][rowsize];
for (int i = 0; i < returnarray.length; i++)
return returnarray;
}/**
* 去掉字串右邊的空格
* * @param str
* 要處理的字串
* @return 處理後的字串
*/public static string righttrim(string str)
int length = str.length();
for (int i = length - 1; i >= 0; i--)
length--;
}return str.substring(0, length);
}
Ajax上傳 xlsx檔案並解析
1 首先必須配置bean 2 ftl頁面 3 js var sometext sometext val var file file 0 files 0 獲取標籤值好像函式與瀏覽器不相容,網上的大多是通過 file files 0 獲取,我這裡必須通過 file 0 files 0 才能獲取到值 va...
Serv u 上傳 xls 中文檔名錯誤
serv u 上傳中文檔案出錯的解決方案 為什麼用serv u9建ftp伺服器時的上傳錯誤,我的那個賬戶已經開啟了所有許可權,但是上傳檔案的時候總是有錯誤提示 將檔案複製到ftp伺服器的時候發生錯誤,請檢查是否有許可權將檔案放到伺服器上。詳細資訊 200 type set to i 227 ente...
poi上傳解析excel 上傳檔案
服務層進行處理 public void importexpressinformation multipartfile file throws exception 這裡我只需要三個單元格內的資料所以沒有迴圈單元格去取東西 for cell cell row id cell cell row.getce...