1. 程式人生 > >Java +EasyUI+SpringMvc實現Excle匯入匯出(下)

Java +EasyUI+SpringMvc實現Excle匯入匯出(下)

前言

    接上篇,在上篇文章我們介紹了要實現Excle匯入做的一些配置和Excel匯入的前端EasyUI程式碼的書寫和後臺controller的具體書寫,這篇我們我們主要來學習Excle匯出的實現和ExcelUtil類的編寫。

正題

    Excel匯出就是根據前臺條件將引數傳到controller,根據引數去資料庫中進行查詢,查詢出list集合,呼叫ExcelUtil工具類,將list集合轉為成excle資料,輸出到瀏覽器。

匯出實現

    首先我們先來看下前臺程式碼,前臺獲取引數,將引數傳到對於的controller中:

		//匯出題庫
		function toDownLoadExcel(){
			 
			  //獲取題型
			  var id= $('#questionType').combobox('getValue')
			  var questionTypes=encodeURI(id);
			   
			  //獲取課程
			  var courseTypeId =$('#courseTypeId').combobox('getValue')
			  var courseType=encodeURI(courseTypeId);
			  
			  if(questionTypes !=""){ 
				  document.getElementById("downLoadExcel").href ="${pageContext.request.contextPath}/leadtoQuestionTypes/leadToExcelQuestionBank?questionType="+questionTypes+"&courseType="+courseType;
		          $.messager.alert('提示','操作成功!','info');  
			  }else{  
		          $.messager.alert('提示','請選擇課程題型!','info'); 
			  }

		} 

    後臺controller獲取前臺傳來的引數,根據引數去資料庫查詢list集合,將list集合通過工具類進行轉化,將Excle輸出到瀏覽器
/**
 * 匯出excel題型題庫
 *
 * @param request 請求
 *            
 * @param resposne 響應
 *            
 * @throws UnsupportedEncodingException   編碼異常
 *            
 */
@RequestMapping("/leadToExcelQuestionBank")
public void leadToExcelQuestionBank(HttpServletRequest request,
		HttpServletResponse response) throws UnsupportedEncodingException {
	try {
		// 獲取前臺傳來的題型和課程
		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");
		// excel表格的表頭,map
		LinkedHashMap<String, String> fieldMap = leadToInQuestionTypesManageBean.getMapLeadToExcelQuestionBank(questionTypeNameId);
		// excel的sheetName
		String sheetName = "題庫";
		// excel要匯出的資料
		List list = leadToInQuestionTypesManageBean.leadToExcelQuestionBank(questionTypeNameId, courseTypeId);
		// 匯出
		if (list == null || list.size() == 0) {
			System.out.println("題庫為空");
		}else {
			//將list集合轉化為excle
			ExcelUtil.listToExcel(list, fieldMap, sheetName, response);
			System.out.println("匯出成功~~~~");
		}
	} catch (ExcelException e) {
		e.printStackTrace();
	}
}

    其中list集合轉化為excle時候的引數fieldMap,是匯出的資料庫欄位和excle中的中文表頭map,方法如下:
/**
 * 得到匯出Excle時題型的英中文map
 *
 * @return 返回題型的屬性map
 */
public LinkedHashMap<String, String> getLeadToFiledPublicQuestionBank() {

	LinkedHashMap<String, String> superClassMap = new LinkedHashMap<String, String>();

	superClassMap.put("stemContent", "題幹內容");
	superClassMap.put("difficulty", "難度等級");
	superClassMap.put("scoreCoefficient", "分值係數");
	superClassMap.put("chapter", "章節");
	superClassMap.put("availability", "是否使用");

	return superClassMap;
}

    在上一篇文章中的excle資料轉為list集合時,也用到了一個map,那個mapexcle中文表頭和資料庫欄位的map集合,方法如下:
/**
 * 得到匯入Excle時,題型類的中英文map
 *
 * @return 返回題型類的屬性map
 */
public LinkedHashMap<String, String> getLeadInFiledPublicQuestionBank() {
	// excel的表頭與文字對應
	LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
	map.put("題幹內容", "stemContent");
	map.put("難度等級", "difficulty");
	map.put("分值係數", "scoreCoefficient");
	map.put("章節", "chapter");
	map.put("是否使用", "availability");

	return map; 
}


ExcelUtil工具類

    在介紹ExcelUtil工具類之前,我們應該先了解下Jxl,Jxl是一個開源的Java Excel API專案,通過Jxl,Java可以很方便的操作Excel文件。我們實現的Excle匯入匯出就是利用了Jxl,當然了除了Jxl,Apache的一個POI也可以操縱Excle,只不過兩者相比,Jxl使用簡單比較容易上手,POI稍微複雜點。而Jxl的缺點就是目前Jxl還不能操作Excle2000以上的版本。

    我們本次使用的Jxl2.6.12版本的,在mavenpom.xml檔案中新增Jxl的座標依賴:

<dependency>
	<groupId>net.sourceforge.jexcelapi</groupId>
	<artifactId>jxl</artifactId>
	<version>2.6.12</version>
</dependency>

    而我們使用的ExcelUtil工具類,可以完成的功能是將list轉化為Excle輸出到瀏覽器,同時也可以完成將Excle轉化為list集合,還可以設定excle列寬等。

    關於ExcelUtil類程式碼比較多,感興趣的同學可以自行下載

小結

    Excle的匯入和匯出是我們在開發中經常遇到的問題,通過這兩篇文章,我們就利用Jxl簡單完成了excle的操作,實現了excle的匯入和匯出。


相關推薦

Java +EasyUI+SpringMvc實現Excle匯入匯出()

前言     接上篇,在上篇文章我們介紹了要實現Excle匯入做的一些配置和Excel匯入的前端EasyUI程式碼的書寫和後臺controller的具體書寫,這篇我們我們主要來學習Excle匯出的實現和ExcelUtil類的編寫。 正題     Excel匯出就

Java +EasyUI+SpringMvc實現Excel匯出

正題 Excel匯出就是根據前臺條件將引數傳到controller,根據引數去資料庫中進行查詢,查詢出list集合,呼叫ExcelUtil工具類,將list集合轉為成excel資料,輸出到瀏覽器。 匯出實現 首先我們先來看下前臺程式碼,前臺獲取引數,將引

java利用POI實現Excel匯入匯出詳解-支援97-2013版本以及2017版本

package com.kero99.ygc.excel; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.

Java SSM註解實現POI匯入匯出Excel

POI生成Excel設定單元格格式: HSSFWorkbook demoWorkBook = new HSSFWorkbook(); HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 En

JAVA實現Excel匯入匯出

JXL實現Excel的Excel匯入匯出 JXL實現Excel的建立 JXL建立Excel檔案 /** * JXL建立Excel檔案 * @author c * */ publ

Java 實現Excel匯入匯出(包含一些簡單樣式設定)工具類

最近很奇怪,客戶各種各樣奇葩的需求,匯出個表格設計各種樣式,真心無語,網上找了很多資料,新手就是這麼坑爹,找東西都不能有點速度!沒辦法,水平所致。提供給跟我差不多水平的朋友參考。 package com.cicro.fuchen.util.excel;

POI實現大資料EXCLE匯入匯出,解決記憶體溢位問題

/** * 抽象Excel2007讀取器,excel2007的底層資料結構是xml檔案,採用SAX的事件驅動的方法解析 * xml,需要繼承DefaultHandler,在遇到檔案內容時,事件會觸發,這種做法可以大大降低 * 記憶體的耗費,特別使用於大資料量的檔案。 * */ public cl

springmvc使用POI,快速實現Excel匯入匯出

匯出Excel整體來說,Excel有.xls和.xlsx,那麼在POI中這兩個也對應兩個不同的類,但是類名不同,方法基本都是一致的,因此我這裡將只介紹.xls一種。整體來說,可以分為如下七個步驟:1.建立Excel文件HSSFWorkbook workbook = new H

Java +Tomcat + SpringMVC實現頁面訪問

技術分享 build page gmv req base and 創建 pub 2018-07-18 14:38:29window7下Java環境安裝記錄:一、安裝Tomcat1、下載tomcat 7.0,解壓,無需安裝,放置到目錄:D:\apache-tomcat-7.0

yii框架實現phpexcel匯入匯出

yii框架實現phpexcel匯入匯出 首先進行phpexcel安裝 網上有很多擴充套件安裝,這裡就不介紹了,可以通過composer安裝,也可以手動下載引入,這裡需要注意的是composer和手動下載在引用類時不太一樣,composer安裝的直接用根名稱空間即可"/PHPExc

springboot2整合easypoi,實現Excel匯入匯出

1.新增Maven依賴 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <v

Excle 匯入匯出

pom.依賴 <!--poi--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version

Excel表實現資料匯入匯出

  資料匯入: @PostMapping("/imp") public String imp(@RequestPart("filePath") MultipartFile filePath) { //建立一個excel檔案 HSSFWorkb

Spring使用POI實現Excel匯入匯出

Apache POI 是建立和維護操作各種符合Office Open XML(OOXML)標準和微軟的OLE 2複合文件格式(OLE2)的Java API。用它可以使用Java讀取和建立,修改MS Excel檔案.而且,還可以使用Java讀取和建立MS Word和MSPowerPoint檔案。Ap

Spring mvc實現ex匯入匯出

依賴架包     <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId>

java excel大資料量匯入匯出與優化

package com.hundsun.ta.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java

JAVA架構-SpringMVC實現原理及解析

                               1、Spring mvc介紹 SpringMVC框架是以請求為驅動,圍繞Servlet設計,將請求發給控制器,然後通過模型物件,分派器來展示請求結果檢視。其中核心類是DispatcherServlet,它是一個S

POI實現Excel匯入匯出(轉)

利用idea建立java web的maven專案,在pom中新增對poi的jar的依賴。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

jxl實現excel匯入匯出的完整demo

@RequestMapping("/pointsImport.do") public void StructureImport(HttpServletRequest request, HttpServletResponse response, Long driv

JAVA服務端通用資料匯入匯出元件V1.0

    工作中經常會遇到對excel這類檔案進行匯入匯出的業務需求, 這些需求其實從根本上看都是對excel的解析處理,因此我特地花了兩天時間寫了一套通用的匯入匯出工具元件,為以後實現這類需求提高效率。當前版本V1.0,原始碼地址:https://github.