java不同方式方式導入導出數據

方法一: 根據  easypoi  實現導入導出

導入:

前端部分:

<div style="vertical-align:top;padding-left:5px; position: relative; display:inline">
                <input id="excle" type="file" class="btn"/>
                <input  type="file" class="btn" style="position: absolute; width: 30px; height: 30px; top:0;opacity: 0">
            </div>

js:

$("#excle").change(function(){
        var file= document.getElementById("excle").files[0];
        var formData=new FormData();
        formData.append("file",file);
        top.jzts();
        $.ajax({
            //bbk2300/lecturerExcelImport.do
            url : "<%=basePath%>oce6001/Map6001ExcelImport.do",
            type : "POST",
            dataType:"JSON",
            data : formData,
            // 告訴jQuery不要去處理髮送的數據
            processData : false,
            // 告訴jQuery不要去設置Content-Type請求頭
            contentType : false,
            success:function (data) {
                top.hangge();
                tosearch(1);
                alert(data.meta.msg);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                top.hangge();
                tosearch(1);
                alert(JSON.parse(XMLHttpRequest.responseText).msg);
            }
        });

    })

後臺部分:

Controller 


import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;


/**
	 * 20180908
	 * 效果圖產品庫導入
	 *
	 * @param request 講師Excel基本信息
	 * @return 返回導入是否成功的
	 * @throws IOException 拋出異常
	 */
	@RequestMapping(value = "/Map6001ExcelImport", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public Response Map6001ExcelImport(HttpServletRequest request) throws IOException {
		Response res = null;
		MultipartHttpServletRequest mhs = (MultipartHttpServletRequest) request;
		/**excel作品模板上傳的名稱*/
		MultipartFile file;
		file = mhs.getFile("file");
		ImportParams importParams = new ImportParams();
		/**是否啓用驗證功能,默認是false不做驗證檢測,這裏的驗證在實體對象中使用annotation標籤驗證*/
		importParams.setNeedVerfiy(true);
		try {
			/**把上傳的Excel文件轉換爲EasyPoi的一個導入結果對象*/
			ExcelImportResult<Map6001ImportExcel> result = ExcelImportUtil.importExcelMore(file.getInputStream(), Map6001ImportExcel.class,
					importParams);
			int count = map6001Service.inserListMap6001(result);
			if(count>0){
				return new Response().success("導入成功"+count+"條");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return res;
	}

server

/**
     * 導入評論信息
     * @param list
     * @return
     * @throws Exception
     */
    @Override
    public int  inserListMap6001(ExcelImportResult<Map6001ImportExcel> list)throws Exception{
        /**所有導入的結果集*/
        List<Map6001ImportExcel> allList = list.getFailList();
        List<Map6001DO> map6001DOList = new ArrayList<>();
        for(Map6001ImportExcel importExcel:allList){
            Map6001DO map6001DO=new Map6001DO();
            map6001DO.setDisId(importExcel.getDisId());
            map6001DO.setOpId(importExcel.getOpId());
            map6001DO.setDisOpId(importExcel.getDisOpId());
            map6001DO.setArtId(importExcel.getArtId());
            map6001DO.setParentId(importExcel.getParentId());
            map6001DO.setDisContent(importExcel.getDisContent());
            map6001DO.setDisUser(importExcel.getDisUser());
            //格式轉換
            Date date =  CommonWan4.parseUsDateTime02(importExcel.getDisDate());
            map6001DO.setDisDate(date);
            map6001DO.setDisStatus(importExcel.getDisStatus());
            Map6001DisExpandOne map6001DisExpandOne=new Map6001DisExpandOne();
            map6001DisExpandOne.setSource(importExcel.getDisExpandOne());
            map6001DO.setDisExpandOne(map6001DisExpandOne);
            map6001DOList.add(map6001DO);
        }
        if(map6001DOList.size()>0){
            //批量寫入數據庫
            return daoMap6001.saveListDb("Map6001DOMapper.insertMap6001List",map6001DOList);
        }
            return 0;
        };
    

 

bean:



import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;

import java.io.Serializable;

/**
 * Excel導入實體類
 *
 * @author yedong
 * @version 1.0
 * @date 2018.908
 */
@Getter
@Setter
@ToString
public class Map6001ImportExcel implements Serializable {
    /**
     * 
     */
    @Excel(name = "評論唯一ID")
    @NotBlank(message = "評論唯一ID")
    private String disId;
    /**
     * 被評論會員ID
     */
    @Excel(name = "評論會員ID")
    private String opId;
    /**
     * 被評論會員ID
     */
    @Excel(name = "被評論會員ID")
    private String disOpId;
    /**
     * 關聯產品ID
     */
    @Excel(name = "關聯產品ID")
    private String artId;
    /**
     * 上級評論ID
     */
    @Excel(name = "上級評論ID")
    private String parentId;
    /**
     * 評論內容
     */
    @Excel(name = "評論內容")
    private String disContent;
    /**
     * 評論人
     */
    @Excel(name = "評論人")
    private String disUser;
    /**
     * 評論時間
     */
    @Excel(name = "評論時間")
    private String disDate;
    /**
     * 評論狀態(1可用2不可用)
     */
    @Excel(name = "評論狀態")
    private String disStatus;
    /**
     * 評論類型(1帖子2產品3效果圖)
     */
    @Excel(name = "評論類型")
    private String disExpandOne;
}

公共方法:

/**
     * 導入導出功能
     * @param timeStr
     * @return
     */
    public static Date parseUsDateTime02(String timeStr) {
        Preconditions.checkArgument(StringUtils.isNotBlank(timeStr), "時間參數不能爲空");
        String pattern = "EEE MMM dd HH:mm:ss zzz yyyy";
        try {
            Date date = new SimpleDateFormat(pattern, Locale.US).parse(timeStr);
            return date;
        } catch (ParseException e) {
            System.out.println("時間解析錯誤");
        }
        return null;
    }

 導出:

前段部分: 

<a class="btn btn-info" title="批量導出" href="javascript:void(0)" onclick="onExi()">批量導出</a>
function onExi() {
        //獲取ID串
        var SelectValue="";
       $("input[name='ids']:checked").each(function(j) {
            if (j >= 0) {
                SelectValue += $(this).val() + ","
            }
        });
        if(SelectValue==undefined || SelectValue==''){
            alert("導出失敗,請選擇導出的數據");
            return ;
        }
        window.location.href="excelController/exportYuYue.do?selectValue="+SelectValue
    }

 後臺部分:

/**
     * 導出預約數據
     *
     * @param response 出參對象
     * @return 返回數據
     * @throws Exception 拋出異常
     */
    @RequestMapping(value = "/exportYuYue")
    public void exportYuYue(HttpServletResponse response, String selectValue) throws Exception {
        /**重置響應對象*/
        response.reset();
        /**當前日期,用於導出文件名稱*/
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        /**設置excel的文件名稱*/
        String dateStr = "[效果圖信息-" + sdf.format(new Date()) + "]";
        /**指定下載的文件名--設置響應頭*/
        response.setCharacterEncoding("UTF-8");
        /**轉換一下編碼,防止亂碼*/
        response.setHeader("Content-Disposition", "attachment;filename=" +
                new String(dateStr.getBytes("UTF-8"), "ISO-8859-1") + ".xls");
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        //獲取導出參數
        //請求中臺獲取數據預約列表數據
        //請求中臺獲取所有預約信息
        Map map = new HashMap();
        List<Long> listLong = new ArrayList<>();
        if (selectValue != null && !selectValue.equals("")) {
            String tr[] = selectValue.split(",");
            for (int i = 0; i < tr.length - 1; i++) {
                Long lo = Long.valueOf(tr[i]);
                listLong.add(lo);
            }
        } else {
            return;
        }
        map.put("ids", listLong);
        String url = ConstOce.ZTVIP_USER + "/sign/getAllAboutListEx";
        String map1 = JSON.toJSONString(map);
        String json = HttpUtil.httpsRequest(url, "POST", map1);
        JSONObject jsonObject1 = JSON.parseObject(json);
        if (jsonObject1 == null || !jsonObject1.getString("code").equals("100")) {
            new Response().failure("獲取失敗");
            return;
        }
        if (jsonObject1.get("list") != null && !jsonObject1.get("list").equals("")) {
            JSONArray jsonArray = JSON.parseArray(jsonObject1.get("list") + "");
            List<Oce4000Expor> list = new ArrayList();
            for (int j = 0; j < jsonArray.size(); j++) {
                JSONObject jsonObject = jsonArray.getJSONObject(j);
                Oce4000Expor oce4000Expor = new Oce4000Expor();
                if (jsonObject.getString("provinceCode") != null && !jsonObject.getString("provinceCode").equals("")) {
                    Oce1006DO oce1006DO = oce1006Service.findByKeyOrName(jsonObject.getString("provinceCode"));
                    if (oce1006DO != null) {
                        oce4000Expor.setProvinceCode(oce1006DO.getProvinceName());
                    }
                }
                if (jsonObject.getString("cityCode") != null && !jsonObject.getString("cityCode").equals("")) {
                    Oce1007DO oce1007DO = oce1007Service.findByKeyOrName(jsonObject.getString("cityCode"));
                    if (oce1007DO != null) {
                        oce4000Expor.setCityCode(oce1007DO.getCityName());
                    }
                }
                if (jsonObject.getString("districtCode") != null && !jsonObject.getString("districtCode").equals("")) {
                    Oce1008DO oce1008DO = oce1008Service.findByKeyOrName(jsonObject.getString("districtCode"));
                    if (oce1008DO != null) {
                        oce4000Expor.setDistrictCode(oce1008DO.getAreaName());
                    }
                }
                //補充其他數據
                oce4000Expor.setAboutId(jsonObject.getString("id"));
                oce4000Expor.setAboutName(jsonObject.getString("customerName"));
                oce4000Expor.setAddress(jsonObject.getString("address"));
                oce4000Expor.setCreationDateStr(jsonObject.getString("creationDateStr"));
                oce4000Expor.setAboutPhone(jsonObject.getString("mobile"));
                list.add(oce4000Expor);
            }
            /**在這裏把查詢到的數據插入Excel模板*/
            ExportParams params = new ExportParams("預約列表信息", "預約列表信息");
            Workbook workbook = ExcelExportUtil.exportExcel(params, Oce4000Expor.class, list);
            workbook.write(response.getOutputStream());
        }
    }
    

方法二: (暫時沒時間寫)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章