日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上)

發布時間:2024/9/27 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標簽:

前言

先介紹下項目的開發環境,采用java開發語言進行開發,前臺UI使用的是EasyUI框架,接下來是SpringMvc與Ejb結合來開發,整個項目管理采用的是Maven管理,服務器用的是Jboss6.2.0企業版。

正文

配置

對于Excel上傳文件我們首先要引入commons-fileupload.jar包,由于我們的項目采用Maven進行項目管理,所以對于jar包的引入是在pom.xml文件中添加的依賴,添加commons-fileupload.jar的坐標:

commons-fileupload

commons-fileupload

1.3.1

由于后臺代碼的ExcelUtil工具類所在的項目不再當前的web項目中,而在itoo-exam-too項目中,因此我們需要將ExcelUtil工具類所在的itoo-exam-too項目進行引入,也就是在maven的pom.xml文件中添加itoo-exam-too的項目依賴:

com.tgb

itoo-exam-tool

0.0.1-SNAPSHOT

接下來SpringMvc的配置文件也需要做些配置,這樣可以將前臺文件進行解析,傳到后臺:

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

具體實現

Excel的導入我們可以進行分解,包括三個步驟:

1.上傳Excel文件

2.讀取Excle文件中的數據,將Excle數據轉化成list集合

3.將list集合存入數據庫

首先我們開始看我們前臺easyui上傳Excle文件的代碼,采用的是一個form表單,表單里包含一個easyui的上傳文件的控件easyui-filebox:

選擇文件: 

導入題庫

前臺代碼比較簡單,我們使用是EasyUI的filebox進行文件上傳,這里需要注意的是form表單的enctype屬性必須是""multipart/form-data",接下來我們用js代碼對Excle的格式進行基本的校驗,然后將文件提交到后臺Controller,

//導入excel

function uploadExcel(){

//得到上傳文件的全路徑

var fileName= $('#uploadExcel').filebox('getValue');

//獲取題型

var id= $('#questionType').combobox('getValue');

var questionTypes=encodeURI(id);

if(questionTypes !=""){

//進行基本校驗

if(fileName==""){

$.messager.alert('提示','請選擇上傳文件!','info');

}else{

//對文件格式進行校驗

var d1=/\.[^\.]+$/.exec(fileName);

if(d1==".xls"){

//獲取題型

var id= $('#questionType').combobox('getValue')

var questionTypes=encodeURI(id);

//獲取課程

var courseTypeId =$('#courseTypeId').combobox('getValue')

var courseType=encodeURI(courseTypeId);

//提交表單

document.getElementById("questionTypesManage").action="${pageContext.request.contextPath}/leadtoQuestionTypes/leadInExcelQuestionBank?questionType="+questionTypes+"&courseType="+courseType;

document.getElementById("questionTypesManage").submit();

$.messager.alert('提示','操作成功!','info');

}else{

$.messager.alert('提示','請選擇xls格式文件!','info');

$('#uploadExcel').filebox('setValue','');

}

}

}else{

$.messager.alert('提示','請選擇課程題型!','info');

}

}

前臺代碼完畢以后,我們接下來看controller的代碼,這里需要注意的是,前臺easyui的filebox的name標簽的名字是作為參數傳到后臺的,后臺以流的形式接收到前臺傳過來的excle文件,我們使用Excle工具類將Excle轉換成list集合,最后將list集合保存到數據庫中。我們看下后臺的代碼實現:

/**

* 導入題庫Excel

*

* @param uploadExcel 上傳的excel文件

*

* @param request 請求

*

* @param resposne 響應

*

* @throws UnsupportedEncodingException 編碼異常

*

*/

@RequestMapping("/leadInExcelQuestionBank")

public String leadInExcelQuestionBank(

@RequestParam("uploadExcel") CommonsMultipartFile uploadExcel,

HttpServletRequest request, HttpServletResponse response)

throws UnsupportedEncodingException {

// 獲取前臺傳來的題型和課程

String questionType = request.getParameter("questionType").trim();

String courseType = request.getParameter("courseType").trim();

String questionTypeNameId = new String(

questionType.getBytes("iso-8859-1"), "utf-8");

String courseTypeId = new String(courseType.getBytes("iso-8859-1"),

"utf-8");

InputStream in;

boolean flag = false;

try {

// 獲取前臺exce的輸入流

in = uploadExcel.getInputStream();

//獲取sheetName名字

String sheetName = leadToInQuestionTypesManageBean.getSheetName(questionTypeNameId);

// excel的表頭與文字對應,獲取excel表頭

LinkedHashMap map = leadToInQuestionTypesManageBean.getMapLeadInExcelQuestionBank(questionTypeNameId);

//獲取組合excle表頭數組,防止重復用的

String[] uniqueFields =leadToInQuestionTypesManageBean.getUniqueFields(questionTypeNameId);

//獲取需要導入的具體的表

Class class1=leadToInQuestionTypesManageBean.getClassName(questionTypeNameId);

//excel轉化成的list集合

List list = null;

try {

//調用excle共用類,轉化成list

list=ExcelUtil.excelToList(in, sheetName, class1, map, uniqueFields);

} catch (ExcelException e) {

e.printStackTrace();

}

//保存實體集合

flag= leadToInQuestionTypesManageBean.leadInExcelQuestionBank(questionTypeNameId, courseTypeId, list);

} catch (IOException e1) {

e1.printStackTrace();

}

System.out.println("執行結果:" + flag);

return "/LeadToQuestionTypeBank";

}

到這里關于Excle導入就已經完成了,關于Excle的導出,和ExcelUtil類的編寫,我們下篇文章繼續,敬請期待。

標簽:

總結

以上是生活随笔為你收集整理的java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。