poi를 이용하여 페이지에서 excel의 가져오기와 내보내기 (페이지를 새로 고치지 않음) 를 실현합니다
먼저 가져오기
필요: 페이지에서 특정 형식의 excel을 선택하여 데이터베이스로 가져옵니다.
프론트 데스크 코드:
<form id="importForm1" action="ProductImport!doImportProductExcel1.action" method="post" enctype="multipart/form-data" target="uploadTarget">
<s:file label=" " name="importProExcel1"></s:file><span style="color:red;font-size=8px;">*( excel )</span>
<a href="#" class="easyui-linkbutton" id="importSbt1" style="text-decoration:none;"> </a>
</form>
주: 폼을 정의하고form의 method,enctype 속성을 주의합니다. 폼에서 파일 탭을 정의하여 excel 파일을 선택하십시오. 다음은 폼을 제출하는 단추입니다.<div style="background:#ffffbb;border:1px solid #0099cc;padding:5px 5px 5px 5px;margin-top:5px;">
:<span id="import-show1" style="color:#0099cc;text-decoration:underline;"></span>
</div>
참고: 가져온 파일을 표시하는 div를 정의합니다.<iframe id="uploadTarget" name="uploadTarget" style='display:none;'></iframe>
주: 폼이 제출된 페이지에 저장할 수 있는 숨겨진iframe를 정의합니다. 위form 탭의 target 속성을 주의하십시오. 바로 이iframe에 대응하는 것입니다.$j('#importSbt1').click(function(){
var file = $j('input[name=importProExcel1]').val();
if(file.lastIndexOf('.xls')==-1){
$j.messager.alert(' ',' , excel !','error');
return false;
}
$j('#importForm1').submit();
});
주: 제출 전 업로드 문서의 형식을 검증하고 js로 폼을 제출합니다백그라운드 코드:
// 1
public String doImportProductExcel1(){
this.excelDataList = new ArrayList();
InputStream is = null;
try {
is = new FileInputStream(importProExcel1);
parseExcel1(is);
importData1();
} catch (FileNotFoundException e) {
e.printStackTrace();
this.importFlag = "-1";
return "importResult";
} catch (IOException e) {
e.printStackTrace();
this.importFlag = "-1";
return "importResult";
}
if(this.opResult != null && this.opResult.isSuccess()){
this.importFlag = "1";
}else {
this.importFlag = "-1";
}
return "importResult";
}
참고: 백그라운드 액션은 주로 parseExcel1과importData1 두 가지 방법이 있는데 각각 excel의 해석과 데이터의 데이터베이스로 가져온 다음importResult 페이지로 되돌아간다public void parseExcel1(InputStream is) throws IOException{
if(is == null){
return ;
}
XSSFWorkbook xwb = new XSSFWorkbook(is);
//System.out.println(xwb.getNumberOfSheets());
for(int sheetNum=0;sheetNum<xwb.getNumberOfSheets();sheetNum++){
Map sheetMap = new HashMap();
Map<String,String> compMap = new HashMap<String, String>();
List prodList = new ArrayList();
XSSFSheet xs = xwb.getSheetAt(sheetNum);
//
XSSFRow xrComp = xs.getRow(1);
for(int cellNum=0;cellNum<xrComp.getLastCellNum();cellNum++){
XSSFCell xc = xrComp.getCell(cellNum);
String xcValue = "";
if(xc != null){
xcValue = xc.getStringCellValue();
}
switch(cellNum){
case 0:compMap.put("companyName", xcValue);break;
case 1:compMap.put("companyAddress", xcValue);break;
}
}
sheetMap.put("compMap", compMap);
System.out.println(compMap);
//compMap.put("id", XUtils.getId());
//template.insert("pkcc.imports.productimport.insertBuyCompanyinfo",compMap);
//template.insert("pkcc.imports.productimport.insertBuyCompanyContact",compMap);
//
for(int rowNum=3;rowNum<=xs.getLastRowNum();rowNum++){
XSSFRow xrProd = xs.getRow(rowNum);
Map<String,String> prodMap = new HashMap<String,String>();
for(int cellNum=0;cellNum<xrProd.getLastCellNum();cellNum++){
XSSFCell xc = xrProd.getCell(cellNum);
String xcValue = "";
if(xc != null){
xcValue = xc.getStringCellValue();
}
switch(cellNum){
case 0:prodMap.put("moduleNumber", xcValue);break;
case 1:prodMap.put("serialNumber", xcValue);break;
case 2:prodMap.put("simNumber", xcValue);break;
}
}
prodList.add(prodMap);
}
sheetMap.put("prodList", prodList);
this.excelDataList.add(sheetMap);
//System.out.println(prodList);
}
}
public void importData1(){
this.opResult = daoHelper.execute(new DaoCallback() {
public Object exec(IBatisTemplate template) {
if(excelDataList!=null&&excelDataList.size()>0){
for(int i=0;i<excelDataList.size();i++){
String compId = XUtils.getId();
Map sheetMap = (Map)excelDataList.get(i);
Map<String,String> compMap = (Map<String,String>)sheetMap.get("compMap");
compMap.put("id",compId);
template.insert("pkcc.imports.productimport.insertBuyCompanyinfo",compMap);
List<Map<String,String>> prodList = (List<Map<String,String>>)sheetMap.get("prodList");
for(int j=0;j<prodList.size();j++){
Map<String,String> prodMap = prodList.get(j);
//
String productId = XUtils.getId();
prodMap.put("id", productId);
prodMap.put("state", "0");
template.insert("pkcc.product.product.insertProduct",prodMap);
}
}
}
return null;
}
});
}
페이지로 돌아가기 importResult:$j(function(){
// excel
if('${importFlag}' == '1'){
window.parent.$j.messager.alert(' ',' !','info');
window.parent.$j('#import-show1').html(window.parent.$j('#import-show1').html()+'${importProExcel1FileName}'+',');
} else if('${importFlag}' == '2') {
window.parent.$j.messager.alert(' ',' !','info');
window.parent.$j('#import-show2').html(window.parent.$j('#import-show2').html()+'${importProExcel2FileName}'+',');
} else {
window.parent.$j.messager.alert(' ',' !','error');
}
});
가져오기 성공 여부를 판단하고 팝업 상자로 결과를 제시합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.