1. 程式人生 > >poi操作excel涉及多個圖片,列表,標題,摘要拼接組合問題

poi操作excel涉及多個圖片,列表,標題,摘要拼接組合問題

前言:

在實際專案之中,特別是遇到報表管理模組,客戶會要求,匯出excel檔案是動態的,其格式應該依據使用者勾選條件而變化,比如有四個勾選項,勾選第一個選項顯示一張圖片,勾選第二個選項顯示一張整體統計圖,勾選第三個顯示n張區域性詳細圖,勾選第四個顯示列表。

那麼問題來了:

    1.前端如何傳遞勾選情況?
    2.後臺如何對勾選情況進行處理?

問題1: 前端傳遞一個字串到後臺,以逗號分隔。以ssm框架為例:

 String type1 = request.getParameter("chartType");//獲取傳遞字串

問題2: ①解析為字元陣列

        String stype[] = null;
		stype = type1.split(",");
		System.out.println("前端勾選情況:");
		for(int i = 0;i < stype.length;i++){
			System.out.println("第"+(i+1)+"個:"+stype[i]);
		}

②關鍵點:對傳遞的引數進行解析,因為傳遞引數是有序的,比如 123,不可能是432。所以先將資料產生的相應的圖片的地址,按照勾選情況存入圖片地址字串陣列。

 if(stype.length == 1){
			//長度為1,取出勾選值,依據勾選值建立相應圖表,插入到一個Excel表格裡面
				selectFK[0] =  Integer.parseInt(stype[0]);
				if(selectFK[0] == 1)
				imagePathFK[0] = dir+"/rose.png";
				if(selectFK[0] == 2)
				imagePathFK[0] = dir+"/AllWindDistriBution.png";
				if(selectFK[0] == 3)
				{
					for(int i = 0; i < pname.length; i++)
					{
						imagePathFK[i] = dir+"/" + pname[i];
					}
					
				}
				
			}

③傳遞引數勾選字串陣列,圖片地址儲存陣列到建立excel方法

 wb = WindDistriButionExcel.exportReport(selectFK,imagePathFK,stype,2);

④建立迴圈,如果勾選引數數組裡面有相應的選項,則對excel插入相應內容

for(int j = 0; j < stype.length ; j++){
			//如果勾選了風玫瑰圖取imagePath[0]
			 if(Integer.parseInt(stype[j]) == 1){
			   略
			 }
	}

⑤完成格式編輯,測試做細微調整