国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

生成 Excel + PDF 導出,用 Java 怎么實現(xiàn)?

共 602字,需瀏覽 2分鐘

 ·

2021-11-27 21:55

點擊關注上方“Stephen”,

設為“置頂或星標”,第一時間送達干貨

作者:慢時光
來源:cnblogs.com/Tom-shushu/p/14279357.html

一、序言

Excel、PDF的導出、導入是我們工作中經常遇到的一個問題,剛好今天公司業(yè)務遇到了這個問題,順便記個筆記以防下次遇到相同的問題而束手無策。

公司有這么兩個需求:

需求一、給了一個表單,讓把查出來的數(shù)據(jù)組裝到表單中并且提供以PDF格式的下載功能。

需求二、?將數(shù)據(jù)查出來以Excel表格的形式下載下來。

二、Java實現(xiàn)PDF的生成和數(shù)據(jù)動態(tài)插入、導出功能

1、第一步:PDF制作模板

因為PDF常用的軟件不讓支持編輯,我們就先使用WPS以Word的形式進行編輯制作出與客戶需求一樣的樣式,然后直接另存為 .pdf 的形式如下圖所示:

a.Word里面制作模板

b.更改名字為 .pdf形式

c.這時需要用到一個叫:Adobe Acrobat DC的軟件,具體操作如下:

用Adobe Acrobat DC打開我們剛才改過名字的PDF文件,點擊右下角的“更多工具”按鈕

到下面這個頁面再點擊“準備表單”按鈕

d.接下來就需要詳細的配置你的數(shù)據(jù)源了

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; color: rgb(58, 58, 58); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">數(shù)據(jù)源即:你代碼中實體類中對應的數(shù)據(jù)(注意字段一定要一一對應),配置完畢就可以保存進行下面的代碼編寫工作了。

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; color: rgb(58, 58, 58); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">2、代碼的編寫

假定我們實體類什么的都已經編寫完成、數(shù)據(jù)通過前端傳入獲取、模板位置在E盤根目錄下名字為:車輛維修審批單.pdf

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">導入jar包:

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">


????com.itextpdf
????itextpdf
????5.5.13

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">實現(xiàn)生成PDF、數(shù)據(jù)插入、導出

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">@RegisterToSMP(serviceDisplay?=?"預覽頁面PDF下載")
@RequestMapping(value?=?"/DM/gwclwxsq/qygl/exportPDF$m=query.service",method?=RequestMethod.POST)
public?String?exportPdf(@RequestBody?GwclwxsqBean?gwclwxsqBean?,?HttpServletResponse?response)?throws?UnsupportedEncodingException?{
????//?1.指定解析器
????System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
????????????"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
????String?filename="車輛維修審批單.pdf";
????String?path="e:/";
????response.setContentType("application/pdf");
????response.setHeader("Content-Disposition",?"attachment;fileName="
????????????+?URLEncoder.encode(filename,?"UTF-8"));
????OutputStream?os?=?null;
????PdfStamper?ps?=?null;
????PdfReader?reader?=?null;
????try?{
????????os?=?response.getOutputStream();
????????//?2?讀入pdf表單
????????reader?=?new?PdfReader(path+?"/"+filename);
????????//?3?根據(jù)表單生成一個新的pdf
????????ps?=?new?PdfStamper(reader,?os);
????????//?4?獲取pdf表單
????????AcroFields?form?=?ps.getAcroFields();
????????// 5給表單添加中文字體?這里采用系統(tǒng)字體。不設置的話,中文可能無法顯示
????????BaseFont?bf?=?BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",
??????????????????????BaseFont.IDENTITY_H,?BaseFont.EMBEDDED);
????????form.addSubstitutionFont(bf);
????????//?6查詢數(shù)據(jù)================================================
????????Map?data?=?new?HashMap();
??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());
??????????????data.put("driver",?gwclwxsqBean.getDriver());
??????????????data.put("carId",?gwclwxsqBean.getCarId());
??????????????data.put("carType",?gwclwxsqBean.getCarType());
??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());
??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());
??????????????data.put("project",?gwclwxsqBean.getProject());
??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());
??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());
??????????????data.put("remarks",?gwclwxsqBean.getRemarks());
?????????//?7遍歷data?給pdf表單表格賦值
????????for?(String?key?:?data.keySet())?{
????????????form.setField(key,data.get(key).toString());
????????}
????????ps.setFormFlattening(true);
????????log.info("*******************PDF導出成功***********************");
????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");
????????e.printStackTrace();
????}?finally?{
????????try?{
????????????ps.close();
????????????reader.close();
????????????os.close();
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????}
????return?null;
}

?data?=?new?HashMap();??????????????data.put("commitTime",?gwclwxsqBean.getCommitTime());??????????????data.put("driver",?gwclwxsqBean.getDriver());??????????????data.put("carId",?gwclwxsqBean.getCarId());??????????????data.put("carType",?gwclwxsqBean.getCarType());??????????????data.put("repairAddress",?gwclwxsqBean.getRepairAddress());??????????????data.put("repairCost",gwclwxsqBean.getRepairCost());??????????????data.put("project",?gwclwxsqBean.getProject());??????????????data.put("fwbzzxfzrYj",?gwclwxsqBean.getFwbzzxfzrYj());??????????????data.put("fgldspYj",?gwclwxsqBean.getFgldspYj());??????????????data.put("remarks",?gwclwxsqBean.getRemarks());?????????//?7遍歷data?給pdf表單表格賦值????????for?(String?key?:?data.keySet())?{????????????form.setField(key,data.get(key).toString());????????}????????ps.setFormFlattening(true);????????log.info("*******************PDF導出成功***********************");????}?catch?(Exception?e)?{??????????log.error("*******************PDF導出失敗***********************");????????e.printStackTrace();????}?finally?{????????try?{????????????ps.close();????????????reader.close();????????????os.close();????????}?catch?(Exception?e)?{????????????e.printStackTrace();????????}????}????return?null;}3、測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; color: rgb(58, 58, 58); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">3、測試

三、Java實現(xiàn)Excel生成和數(shù)據(jù)插入、導出

這個比較簡單,直接上代碼(假定你的實體類、查詢什么的都已經寫好)注意:實體類一個是你自己的數(shù)據(jù)實體類還有一個是你導出時表格中對應的實體類。

我們以一個真實的公司業(yè)務來舉個例子(一個統(tǒng)計疫情登記人員信息的Excel導出功能)

a.表頭對應實體類ExportYqfkdj.java

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">import?lombok.Data;

/**
?*?description:
?*?@author:?zhouhong
?*?@version:?V1.0.0
?*?@date:?2021年1月14日?下午3:05:54
?*/
@Data
public?class?ExportYqfkdj?{
????/**
?????*?序號
?????*/
????private?Integer?xuhao;
????/**
?????*?姓名
?????*/
????private?String?xingming;
????/**
?????*?證件號碼
?????*/
????private?String?zjhm;
????/**
?????*?聯(lián)系電話
?????*/
????private?String?lxdh;
????/**
?????*?申請人工作單位
?????*/
????private?String?sqrGzdw;
????/**
?????*?是否接觸過疑似病例
?????*/
????private?String?sfjcgysbl;
????/**
?????*?當前是否與居家隔離人員同住
?????*/
????private?String?sfyjjglrytz;
????/**
?????*?當前狀態(tài)
?????*/
????private?String?dqzt;
????/**
?????*?當前健康狀態(tài)
?????*/
????private?String?dqjkzt;

????/**
?????*?當前體溫
?????*/
????private?String?dqtw;
????/**
?????*?當前所在地址
?????*/
????private?String?dqszdz;
????/**
?????*?當前居住地址
?????*/
????private?String?dqjzdz;
????/**
?????*?提交時間
?????*?*/
????private?String?tjsj;
}

推薦一個 Spring Boot 基礎教程及實戰(zhàn)示例:https://github.com/javastacks/spring-boot-best-practice

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">b.Service層

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">/**
?*?導出
?*?@param?yqfkdjBean
?*?@author?zhouhong
?*?@return
?*?@throws?Exception
?*/
@Transactional(rollbackFor?=?{?Exception.class?})
public?DataResult?exporYqfkdj(YqfkdjBean?yqfkdjBean)?throws?Exception?{
????DataResult?result?=?new?DataResult();
????List?list?=?new?ArrayList();
????try?{
????????/*?查詢導出信息?*/
????????result?=?getYqfkMhCXQuery(yqfkdjBean);
????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");
????????for?(int?i?=?0;?i?????????????ExportYqfkdj?dmKhfwdcDtjlZxDto?=?new?ExportYqfkdj();
????????????dmKhfwdcDtjlZxDto?=?ObjectUtil.parsePojo(result.getResults().get(i),?ExportYqfkdj.class);
????????????dmKhfwdcDtjlZxDto.setXuhao(i?+?1);
????????????list.add(dmKhfwdcDtjlZxDto);
????????}
????????String?filepath?=?"D:/疫情防控信息"?+?df.format(new?Date())?+?".xlsx";
????????if?(System.getProperty(YqfkdjUtils.Wjdz.NAME).toLowerCase().startsWith(YqfkdjUtils.Wjdz.LI)
????????????????||?System.getProperty(YqfkdjUtils.Wjdz.NAME).toLowerCase().startsWith(YqfkdjUtils.Wjdz.LIN))?{
????????????filepath?=?"/home/Tomcat/temp/"?+?df.format(new?Date())?+?".xlsx";
????????}
????????EasyExcel.write(filepath,?ExportYqfkdj.class).head(head()).sheet().doWrite(list);
????????result.setResults(list);
????????result.setSuccess(true);
????????result.setMsg(filepath);
????}?catch?(Exception?e)?{
????????result.setSuccess(false);
????????result.setMsg(YqfkdjUtils.Cytx.DCSB);
????????e.printStackTrace();
????????throw?e;
????}
????return?result;
}
/**
?*?疫情防控信息導出表頭
?*?@author?zhouhong
?*?@return?List>
?*/
private?List>?head()?{
????List>?list?=?new?ArrayList>();
????List?head0?=?new?ArrayList();
????head0.add("序號");
????List?head1?=?new?ArrayList();
????head1.add("姓名");
????List?head2?=?new?ArrayList();
????head2.add("證件號碼");
????List?head3?=?new?ArrayList();
????head3.add("聯(lián)系電話");
????List?head4?=?new?ArrayList();
????head4.add("工作所在單位");
????List?head5?=?new?ArrayList();
????head5.add("是否接觸疑似病例");
????List?head6?=?new?ArrayList();
????head6.add("是否與隔離人員同住");
????List?head7?=?new?ArrayList();
????head7.add("當前狀態(tài)");
????List?head8?=?new?ArrayList();
????head8.add("當前健康狀態(tài)");
????List?head9?=?new?ArrayList();
????head9.add("體溫(°C)");
????List?head10?=?new?ArrayList();
????head10.add("當前所在地址");
????List?head11?=?new?ArrayList();
????head11.add("當前居住地址");
????List?head12?=?new?ArrayList();
????head12.add("提交時間");
????list.add(head0);
????list.add(head1);
????list.add(head2);
????list.add(head3);
????list.add(head4);
????list.add(head5);
????list.add(head6);
????list.add(head7);
????list.add(head8);
????list.add(head9);
????list.add(head10);
????list.add(head11);
????list.add(head12);
????return?list;
}

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">c.Controller層

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")
@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)
public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{
????DataResult?result?=?new?DataResult();
????try?{
????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");
????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);
????????String?filepath?=?result.getMsg().replace("\"",?"");
????????File?file?=?new?File(filepath);
????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";
????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));
????????byte[]?buffer?=?new?byte[fis.available()];
????????fis.read(buffer);
????????fis.close();
????????resp.reset();
????????resp.setHeader("Content-Disposition",
????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));
????????resp.setHeader("Content-Length",?""?+?file.length());
????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());
????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
????????//?輸出文件
????????os.write(buffer);
????????os.flush();
????????os.close();
????}?catch?(Exception?e)?{
????????e.printStackTrace();
????????log.info(YqfkdjUtils.Cytx.DCSB);
????????throw?e;
????}
}

>?*/private?List>?head()?{????List>?list?=?new?ArrayList>();????List?head0?=?new?ArrayList();????head0.add("序號");????List?head1?=?new?ArrayList();????head1.add("姓名");????List?head2?=?new?ArrayList();????head2.add("證件號碼");????List?head3?=?new?ArrayList();????head3.add("聯(lián)系電話");????List?head4?=?new?ArrayList();????head4.add("工作所在單位");????List?head5?=?new?ArrayList();????head5.add("是否接觸疑似病例");????List?head6?=?new?ArrayList();????head6.add("是否與隔離人員同住");????List?head7?=?new?ArrayList();????head7.add("當前狀態(tài)");????List?head8?=?new?ArrayList();????head8.add("當前健康狀態(tài)");????List?head9?=?new?ArrayList();????head9.add("體溫(°C)");????List?head10?=?new?ArrayList();????head10.add("當前所在地址");????List?head11?=?new?ArrayList();????head11.add("當前居住地址");????List?head12?=?new?ArrayList();????head12.add("提交時間");????list.add(head0);????list.add(head1);????list.add(head2);????list.add(head3);????list.add(head4);????list.add(head5);????list.add(head6);????list.add(head7);????list.add(head8);????list.add(head9);????list.add(head10);????list.add(head11);????list.add(head12);????return?list;}c.Controller層@RegisterToSMP(serviceDisplay?=?"疫情防控查詢導出")@RequestMapping(value?=?"/DM/yqfkdj/gr/yqfkdjdc$m=export.service",?method?=?RequestMethod.POST)public?void?exportKhfxxx(@RequestBody?YqfkdjBean?yqfkdjBean,?HttpServletResponse?resp)?throws?Exception?{????DataResult?result?=?new?DataResult();????try?{????????SimpleDateFormat?df?=?new?SimpleDateFormat("yyyyMMddhhmmssSSS");????????result?=?yqfkdjService.exporYqfkdj(yqfkdjBean);????????String?filepath?=?result.getMsg().replace("\"",?"");????????File?file?=?new?File(filepath);????????String?filename?=?"疫情防控信息"?+?df.format(new?Date())?+?".xlsx";????????InputStream?fis?=?new?BufferedInputStream(new?FileInputStream(filepath));????????byte[]?buffer?=?new?byte[fis.available()];????????fis.read(buffer);????????fis.close();????????resp.reset();????????resp.setHeader("Content-Disposition",????????????????"attachment;filename="?+?new?String(filename.replaceAll("?",?"").getBytes("gbk")));????????resp.setHeader("Content-Length",?""?+?file.length());????????OutputStream?os?=?new?BufferedOutputStream(resp.getOutputStream());????????resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");????????//?輸出文件????????os.write(buffer);????????os.flush();????????os.close();????}?catch?(Exception?e)?{????????e.printStackTrace();????????log.info(YqfkdjUtils.Cytx.DCSB);????????throw?e;????}}測試" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" wah-hotarea="click" hasload="1" style="outline: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); cursor: pointer; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">測試

已經全部完成PDF和Excel的生成、插入、導出功能。

參考鏈接:https://www.cnblogs.com/wangpeng00700/p/8418594.html


END


喜歡就三連



關注 Stephen,一起學習,一起成長。


瀏覽 136
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美成年人视频| 超碰97久久| 欧美日韩亚洲一区二区| 最新av网| 极品美女援交在线| 最新中文字幕777私人在线| 国产一级婬片A片AAA樱花| 亚洲精品视频免费在线观看| av老鸭窝| 人妻无码蜜桃视频| 一级片在线| 在线免费观看黄| 国产精品高潮无套内谢| 69成人天堂无码免费| 人人爱人人干人人操| 粉嫩一区| 青娱乐大香蕉| 日韩黄色AV| 777无码| 国产黄a| 成人性爱视频免费观看| 精品吃奶一区二区三区视频| 999高清无码| 五月丁香| 国产精品国产精品国产专区不片| 丁香五月天AV| 九一国产| 天天色粽合合合合合合合| 国产精品2025| 日韩黄色A级片| 中文有码| 四川w搡BBB搡wBBB搡| 国产一| 五月天婷婷激情网| 久久91精品| 亚洲中文无码av| 干欧美女人| 日日撸视频| av免费网站| 五月激情丁香| 成人午夜毛片| www.俺也去| 日本中文视频| 俺去俺来也在线www色情网| 亚洲精品aaa| 色多多导航| 成人性爱福利视频| 午夜婷婷| 五月激情视频| 丁香五月天堂| 91在线无码精品秘蜜桃入口| 黄色一级免费看| 国产又猛又黄又爽| 美女天天日| www.色色网| 黄色高清视频在线观看| 蜜桃网站视频| 伊人春色网| 99热免费| 亚洲欧美成人在线| 学生妹毛片| 六月激情婷婷| 久草加勒比| 91蝌蚪视频在线观看| 欧美伦妇AAAAAA片| 河南乱子伦视频国产| 国产视频高清无码| 免费看黄色毛片| 亚洲福利社| A视频免费在线观看| 亚洲精品国产成人无码区在线| 人人操人人| 尤物视频在线播放| 青青草国产| www.97色色| 亚洲成人日韩| 国产色情在线| 亚洲视频免费完整版在线播放 | 久久久久久免费视频| 丁香五月激情五月| 亚洲国产精品成人久久蜜臀| 高潮国产视频| 国产V在线观看| 密臀av在线| 撒尿BBw搡BBwBBw| 俺来射| 蜜臀av在线免费观看| www.操操操| 成人av免费观看| 免费在线观看A| 亚洲在线一区二区| 无码蜜桃吴梦梦| 国产一级生活片| 午夜视频网| 成人网站一区二区| 国产免费啪啪视频| 久久无码人妻精品一区二区三区| 香蕉91| 999精品| 亚洲黄色在线播放| 亚洲五月天色| www.97cao| 99久久亚洲精品日本无码| 韩国一区二区在线观看| 亚洲黄色在线免费观看| 亚洲免费小电影| 中文字幕人妻丝袜二区电影| 中文精品在线| 日韩免费精品视频| 俺去俺来也在线www色情网| 色国产在线| 婷婷69| 大香蕉75在线| 高清无码在线免费观看视频| 免费成人三级片| 少妇厨房愉情理伦BD在线观看| 亚欧洲精品在线视频| 日日躁夜夜躁| 97超碰伊人| 日韩91在线| 久久亚洲综合| 无码人妻精品一区二区三区蜜臀百度 | 国产足交视频| www.18av| 最新国产精品| 色婷婷综合激情| 日韩经典无码| 国产黄| 2021无码| 中文字幕无码在线播放| 狠狠躁日日躁夜夜躁A片无码视频| 人妻大香蕉| 国产三级电影| 激情无码网站| 免费一级欧美片在线观看| 噜噜色av| 色中色av| 亚洲vs无码秘蜜桃| 不卡视频一区二区三区| 黄色电影a片| 日韩欧美国产精品| 操逼视频在线看| 婷婷伊人綜合中文字幕| 欧美成人激情| 亚洲色影院| 亚洲国产高清在线观看视频| 亚洲AV无码成人网站国产网站| 嫖中国站街老熟女HD| 操逼操逼操| 先锋成人电影| 欧美A级成人婬片免费看| 三级黄色视频在线观看| 中文字幕久热| 91精品国产偷窥一区二区| 黄色av免费在线观看| 中文字幕在线免费视频| 精品九九九| 中文字幕码精品视频网站| 最美人妖系列国产Ts涵涵| 国产在线欧美| 亚洲天堂在线视频播放| 99九九热| AV黄色在线观看| H片在线免费观看| 久久久精品人妻| 亚洲无码精品视频| 操逼基地| 中文字幕乱在线| 99在线精品视频观看| 大吊AV| 91导航| 婷婷99狠狠躁天天躁| 影音先锋一区二区三区| 青草五月天| 夜夜操狠狠操| 欧美性生交18XXXXX无码 | 99久| 国产电影一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 国产欧美精品在线观看| 1024香蕉视频| 大伊香蕉视频| 婷婷天堂网| 成人AV中文解说水果派| 亚洲精品秘一区二区三线观看 | 好吊妞操| 欧美亚洲成人在线观看| 三级国产AV| 俺来也网| 日韩免费| 北条麻妃精品青青久久价格| 欧美视频一| 日韩天堂在线观看| 日韩欧美二区| 91探花足浴店少妇在线| 香蕉国产AV| 九九成人免费视频| 91碰| 永久免费av| 制服丝袜乱伦| 国产免费一区二区三区网站免费 | 天天射夜夜操| 亚洲欧洲精品在线| 91视频久久| av逼网| 成人做爰黄级A片免费看土方 | 久久伊人草| 水果派解说在线观看| 丁月婷婷五香天日五月天| 欧美性猛交| 国内精品久久久久久久久久| 激情深爱五月| 97国产在线视频| 国产无毛| 天天日天天日天天操| 91久久精品无码一区| 操片免费| 日韩视频中文字幕| 欧美一级特黄AAAAAA片在线视频| 天堂资源站| 西西444WWW无码精品| 国产精品久久久久久久久久久免费看| 最近日韩中文字幕中文翻译歌词| 超碰日日夜夜| 九九韩剧网最新电视剧免费观看| 免费一级无码成人片| 在线观看中文字幕av| 国产成人精品a区在线观看| 亚洲无码免费网站| 国产成人免费做爰视频| 一本高清无码| 婷婷午夜| 久久精品性爱| 久草青| 亚洲无码AV一区二区三区 | 日产久久久久久| 國產精品777777777| 亚洲色综合久久五月| 欧美不卡| 国产一级二级三级视频| 精品久久大香蕉| 国内精品卡一卡二卡三| 国产强伦轩免费视频在线| A级视频网| 激情一级| 日韩在线精品| 日韩黄片| 国产婬片lA片www777| 日韩一级片在线播放| 亚洲精品福利| 狠狠干,狠狠操| 黄色片无码| 亚洲欧美精品在线| 人妻精品一卡二卡| 嫩BBB搡BBB搡BBB四川| 97日日| 插插视频| 91香蕉视频在线看| A片网站在线观看| 久久久国产91桃色一区二区三区 | 午夜乱伦| 东京热第一页| 欧美在线免费观看| 老女人日逼| www.黄色av| 国产视频第一页| 免费在线观看A片| 久久精品国产AV一区二区三区 | 青青草原在线视频免费观看| 日韩成人A片| 成人一级精品| 成人综合娱乐网| 看a网站| 亚洲综合在线视频| 天堂网一区二区三区| av岛国免费| 色色97| 息子交尾一区二区三区| 色综合一区二区| 伊人网站| 无码国产+白浆| 无码av中文字幕| 日本成人性爱视频网站一区| 人妻精品综合码| 久草超碰在线| 国色天香一区二区| 色婷婷久综合久久一本国产AV | 黑人人妻黑人ThePorn| 国产激情艹逼| 91人妻人人澡人人添人人爽| 亚洲国产精品久久人人爱| 欧洲肥胖BBBBBBBBBB| 另类Av| 大鸡吧网站| 国产精品扒开腿| 五月丁香婷婷激情| 日韩黄色毛片| 蜜桃精品无码| 91在线无精精品秘白丝| 强波多野结衣黑人| 久操视频免费看| 水蜜桃一曲二区| 黄色a在线| 91在线成人| 无码天堂| 亚洲娱乐在线| 亚洲视频二区| 操15p| 亚洲综合干| 日韩小视频| av不卡在线观看| 亚洲精品婷婷| 四川妇搡BBBB搡BBBB| 久久99精品久久久久久水蜜桃| 黄色欧美视频| 无码熟妇人妻无码AV在线天堂| 国产又色又爽又黄又免费| 啪视频网站国产馆| 日韩欧美中文字幕在线视频| 狠狠地操| 99操99| 亚洲免费在线视频观看| 白嫩无码| av无码中文| 青青青在线| 高清无码第一页| 黄色在线观看免费| 阿v视频在线观看| 老司机无码视频| 9久精品| 豆花视频logo| 亚洲福利一区二区| 香蕉国产2023| 阿宾MD0165麻豆沈娜娜| 吹潮喷水高潮HD| 欧美在线天堂| 天天日天天| 激情五月天黄色| 中文字幕无码av| 亚洲AAAAAA| 天天爽日日澡| 国产av地址| 欧美日韩成人| 亚洲A片一区二区三区电影网| 殴美老妇BBBBBBBBB| 黑人在线视频| 国产黄色片在线观看| 日韩欧美人妻无码精品| 伊人久久久| 少妇高潮日韩| 亚洲AV成人无码| 亚洲AV无码蜜桃| 无码一道本| 国产91探花精品一区二区| 狠久久| 一区二区三区日本| 欧美偷拍| 国产av一区二区三区四区| 高清无码免费| 亚洲v在线观看| 男女操逼视频网站免费| 国产99久久九九精品无码免费| 91熟女首页| 91农村站街老熟女露脸| 天天三级片| 日本特级黄A片免费观看| 精品人妻一区二区三区日产乱码| 日韩色区| 亚洲日韩精品成人无码专区AV | 豆花视频成人网站入口免费观看 | 综合天天| 午夜午夜福利理论片在线播放| 日日夜夜AV| 大香蕉伊人青青草| 岛国AV免费看| 免费黄视频在线观看| 亚洲最大成人网站| 黄色免费在线网站| gogogo高清在线观看免费直播中国 | 免费在线观看视频黄| 欧美footjob高跟脚交| 国产一级婬乱片AV片AAA毛片| 五月丁香六月久久| 日本精品无码a62v在线| 午夜成人精品一区二区三区| 高清免费无码视频| 中文字幕av一区| 91水蜜桃| 国产丝袜在线视频| 免费观看高清无码视频| 日韩欧美毛片| 在线观看av资源| 97色综合| 蜜桃视频在线观看视频| 国产一级特黄aaa大片| 日韩成人黄色电影| 躁BBB躁BBB躁BBBBBB日视频| 777777视频| 成人理伦A级A片在线论坛| 日韩一级一片内射视频4K| 中文字幕成人视频| 高清无码操逼视频| 国产人妖在线| 亚洲日韩在线免费观看| gogogo高清在线观看免费直播中国 | 久草久久| 久久日精品| 深爱五月婷婷| 中文字幕黄色| 中文字幕黑人无码| 无码一卡| 丁香一区二区| 黄片免费播放| 免费看黄片| 国产视频99| 亚洲秘无码一区二区三区| 炮友露脸青楼传媒刘颖儿| 人人澡人人澡人人| 欧美日韩色视频| 亚洲日韩视频在线观看| 天堂资源在线观看| 3D动漫精选啪啪一期二期三期| 一本色道久久综合亚洲精品久久| 最新毛片网站| 91麻豆国产在线观看| 国产综合久久777777麻豆| 无码一区二区区| 久久精品国产精品| 一级黄色影片| 国产精品国产成人国产三级| 日本啪啪网站| 日本欧美操| 亚洲日韩成人电影| 久热久| sese在线| 91乱了伦国产乱子伦| 人操人| 69国产精品成人无码视频色| 日本欧美中文字幕| 日韩在线免费| 2025av在线| 友田真希一级婬片A片| 在线播放亚洲| 青青草原网址| 中文字幕在线高清| 91网站18| 欧美在线视频免费观看| 天天天日天天天天天天天日歌词| 亚洲综合一二三区| 亚洲自拍电影| 日韩一区二区三区精品| 欧美久草蜜桃视频| 亚洲综合免费观看| 亚洲激情内射| 熟女人妻人妻の视频| 一级欧美一级日韩| 波多野结衣91| 午夜激情毛片| 国产欧美综合在线三区| 色婷婷AV一区二区三区软件| 99久久伊人| 成人黄色毛片视频| 免费a在线观看| 99久久久国产| 99天天视频| 中文字幕亚洲在线| 欧美丰满老熟妇XXXXX性| 国产中文字幕免费| AⅤ视频在线观看| 中文字幕亚洲在线观看| 少妇婷婷| 操女人的网站| 99热在线观看| 日本免费a片| 天天干妹子| 91精品国产乱码久久久| 精品国产AV| 天天干天天日天天色| 蜜桃Av噜噜一区二区三区四区| 天天视频狠狠狠狠| 久久精品视频在线| 国产无套内射视频| 精品视频免费在线| 波多野结衣无码流出| 国产在线小电影| 熟妇女人妻丰满少妇中文字幕 | 久草国产视频| 国产99久久| 国产乱码在线| 天堂网在线视频| 中文无码日本一级A片人| 黑人aV| 国内自拍激情视频| 中文字幕在线资源| 浮力影院欧美| 亚洲另类图片小说| 成人无码欧美大片免费看| 一级AV片| 中文字幕高清在线| 特黄AAAAAAAA片免费直播| 鲁鲁鲁鲁鲁鲁鲁777777| 996热| 免费高清无码在线观看| 三级片高清无码| 操屄视频免费观看| 九九操比| 亚洲天堂在线视频观看| 无码成人午夜在线影院| 69国产精品无码免费| 欧美日韩国产三级| 嘿咻无码推油| 亚洲小视频在线观看| 九九精品视频在线播放| 色欲av网站| 国产高清在线免费观看AV片| 日韩AV在线免费观看| 国产一级a毛一级a做免费高清视频 | 久久久国产精品视频| 中文字幕在线网址| 亚洲性无码| 特级西西444www| 嘿咻无码| 婷婷欧美| 中文在线字幕免费观看电视剧大全| 爱色五月| 亚洲日皮| 91网在线观看| 亚洲色图狠狠撸| 在线观看国产黄色| av岛国免费| 99热综合在线| 精品无码不卡| 亚洲国产成人自拍| 少妇一区二区三区| 黄色成人视频在线免费观看| 囯产精品一区二区三区线一牛影视1 | 久久99精品久久久水蜜桃| 中文字幕成人在线观看| 五月婷婷综合激情| 亚洲AV无码精品岛国| 亚洲一本在线电影av| 翔田千里珍藏版无码| A在线免费观看| 日韩香蕉视频| 无码人妻蜜桃| 亚洲激情综合视频| 国产欧美高清在线| 人人插人人| 狠狠撸在线观看| 中文字幕乱码中文字幕| 97精品一区二区三区A片| 人妻九九九| 激情网站免费| 亚洲成人性爱av| 国产乱子伦真实精品| 黄色一级片免费看| 大地影院资源官网| 大香蕉尹人在线观看| 91无码国产成人精品| 亚洲AV秘无码一区在线| 日本的黄色视频| 中文字幕综合网| 囯产精品久久久久久久久久| 午夜久久久| 亚洲三级在线视频| 色欲大香蕉| www.91在线看| 丁香花免费高清视频小说完整| 西西4444www无码精品| 日本精品一区二区| 一区二区无码在线| 毛片在线观看网站| 操逼在线看| 91精品国产乱码香蕉黄瓜草莓 | 狠狠操狠狠操狠狠操| 久久国产欧美| 亚洲天堂无码AV| 麻豆91蜜桃传媒在线观看| 97香蕉久久夜色精品国产| 开心激情播播网| 国产精品无毛五区六区| 大香蕉A片| 婷婷五月丁香网| 国精产品一区一区三区四川| 青青青草视频在线观看| 午夜福利国产| 老太色HD色老太HD-百度| 天天操婷婷| AV成人无码| 久久天堂av| 成人性生活影视av| 亚洲vs天堂vs成人vs无码| av黄色| 91精品婷婷国产综合久久竹菊| 日韩黄色一级视频| 中文字幕乱码中文字乱码影响大吗| 最新国产视频| 亚洲日韩欧美一区二区天天天 | 第一福利视频导航| 91精品国产综合久久蜜臀使用方法| 在线亚洲欧美| 免费A片在线播放| 尿在小sao货里面好不好| 亚洲日韩国产成人精品久久| 99久久网站| 粉嫩99国产精品久久久久久人妻 | 色综合久久久| 伊人青青操| 国产精品国产三级国产AⅤ中文| 久久不雅视频| 成人激情久久| 欧美成人福利视频| 天天三级片| 成人免看一级a一片| 最近中文字幕在线视频| 人人妻人人澡人人爽久久con| 中文字幕亚洲在线| 日本在线观看| 国产精品一区在线观看| 毛片在线视频| 国产精品久久久久野外| 人人插人人操| 精品国产91| 成人视频一区二区三区| 日韩欧美操逼| 色婷婷AV一区二区三区软件| 亚洲AV无码成人精品区| 成人亚洲电影| 女人AV天堂| 黄色三级在线| 日韩高清无码专区| 国产91精品在线观看| 日韩亚洲欧美在线观看| 亚洲无码高清一区| 国产伦精一品二品三品app| 韩国精品在线观看| 色老板视频在线观看| 欧美A片在线播放| 97无码精品人妻一区二区三区| 欧一美一婬一伦一区二区三区自慰,| 操美女大逼| 久久久久99精品成人片三人毛片| 特级西西444WWW无码视频兔费看 | 麻豆精品秘国产| 色综合久久久| 日韩三级片在线视频| 亚洲一区二区三区在线播放| 爱操影院| 超碰人人网| 国产乱伦中文字幕| 国内精品一区二区三区| 五月丁香婷婷激情| 亚洲色爽| 久久久久无码精品国产91福利| 免费色网站| 亚洲高清无码一区二区三区| 免费在线观看a片| 91精品国产91久久久久久久久久 | 五月激情婷婷网| 日韩v片| 在线视频一区二区| 69久久久久| 大香蕉综合久久| 伊人综合大香蕉| 天天爱综合| 91福利视频网站| 人成视频在线| a在线观看视频| 天天添天天操| 国产成人免费在线观看| 69成人网站| 51成人网站免费| 免费亚洲视频| 国产成人AV| 最新AV在线播放| 爱插美女网| 俺也来俺也去WWW色| 特黄视频在线观看| 美女高潮网站| 在线观看免费黄网站| 亚洲日韩在线中文字幕| 99色在线视频| 国产av三级片| 中文字幕在线视频免费观看| 婷婷色网站| 天天操天天干天天射| 欧美精品综合| 国产午夜福利视频| 大香蕉婷婷| 国产人国产视频成人免费观看…| 久久久国产一区二区三区| 日韩三级片网址| 中文字幕在线视频日本| 亚洲热视频在线观看| 波多野结衣大战黑人| 在线天堂19| 成年人免费视频网站| 精品视频久久久| 自拍偷拍国产| 亚洲人成电影| 韩国日本久久| 免费看特别黄色视频| 成人中文字幕无码| 国产黄片在线播放| 最近最经典中文MV字幕| 一区二区三区四区在线看| 怡春院亚洲| 国产伊人久久| 国产精品欧美7777777| 亚洲AV无码成人精品| 久久嫩草在线影院| 人人操人人操人人操人人操人人操| 麻豆视屏| 九九九九九九精品视频| 成人免费在线电影| 亚洲日韩三级片| 久久久无码视频| 亚洲无码自拍偷拍| 91九色口爆吞精| 日本操逼在线播放| 欧美成人一区二区三区片| 综合黄色| 免费无码婬片AAAA片在线蜜芽 | 精品AV国产| 午夜久| 日韩中文字幕在线人成网站| 特级西西444www大精品| 99九九久久| 国产成人网| 在线一区| 天天三级片| 中文字幕日韩美| 亚洲乱伦小说网| 午夜操逼网| 丰满少妇在线观看网站| 天天爽日日澡AAAA片| 欧美日韩群交| 亚洲成人AV一区二区| 国产AV直播| 一区二区三区免费播放| av资源免费| 嫩草亚洲小泬久久夂| 成人视频网站18| 国产精品特级毛片| 午夜久| 操操操综合网| 岛国免费AV| 干片网| 男人天堂AV片| 久久艹精品视频| 影音先锋色AV| 亚洲日韩欧美一区二区天天天| 精品一区二区三区四区视频| 亚洲天堂在线视频观看| 久久久精品影院| 欧美男女交配视频| 亚洲自拍中文字幕| 亚洲中文免费视频| 中文av字幕| 68久久久| 亚洲精品成人无码熟妇在线| 国产精品99精品| 91超碰久久在线| 99re在线观看视频| 精品免费视频| AV无码毛片| 一级a免费| 亚洲一级视频在线观看| 大香蕉伊人在线观看视频| 高潮视频在线观看| 91丨豆花丨成人熟女| 在线成人自拍| 亚洲精品国偷拍自产在线观看蜜桃 | 日本久久网站| www.四虎成人网站| 亚洲高清视频无码| 四虎看片| www.俺去了| 一区二区三区四区无码视频| 韩日一级17c| 国产欧美一区二区三区特黄手机版| japanese在线观看| 免费A片观看| 六月色| 天天干天天上| 老妇槡BBBB| 北条麻妃在线不卡| 国产91无码精品秘入口新欢| 中出欧美亚洲| 欧美日韩人妻高清中文| 91九色网| 国产色情网站| 操逼视频免费看| 婷婷黄色网| 91骚| jk无码| 日韩高清国产一区在线| 欧美国产日韩视频| 欧美成年人视频| 亚洲精品成人无码毛片| 日韩中文字幕在线| 久久久无码AV| 日韩免费中文字幕A片| 成人午夜无码视频| 大鸡巴黄色视频免费观看| 69国产成人精品二区| 天堂8在线| 另类图片亚洲色图| 欧美亚洲成人精品| 手机在线毛片| 日批免费视频| 人妻精品| 四虎av在线播放| 亚洲乱伦小说网| 哪里可以看毛片| 午夜黄片| 欧美日韩黄色极品| 玖玖资源站中文字幕| 大黑鸡巴视频| 国产AV日韩AⅤ亚洲AV中文| AV第一福利大全导航| 亚洲成人AV在线观看| 天天操B| 综合天堂| 日韩一区二区三| 无码人妻丰满熟妇区毛片视频| 日韩精品一区二区三区四在线播放| 无码专区亚洲| 中文字幕五月久久| 在线看片a| 伊人热久久| 日韩欧美精品18| 日产久久视频| 青草成人在线| 麻豆AV在线播放| 久久久久久免费视频| 色婷婷激情五月天| 九九九九九精品| 黑人人妻黑人ThePorn| 韩日美女性爱| 做a视频| 国产真实露脸乱子伦对白高清视频| 伊人成人在线观看| 97超碰网| 日韩乱伦av| 青青伊人网| 男人的天堂视频在线观看| 无码伦理| 翔田千里珍藏版无码| 日韩中文无码一级A片| 特黄特色大片BBBB| 三级小说| 精品亚洲一区二区三区| 三级网站网址| 国精产品一区二区三区黑人和中国| AV1区二区| 人人妻人人澡人人爽人人爽| 韩国无码免费| 一区无码视频| 中文字幕高清无码在线| 大鸡吧网站| 欧美XXXXBBBB| 成人爱爱免费视频| 亚洲视频一区二区| 亚洲无码一区二区三区蜜桃| 国产日逼网站| 中文字幕在线观看av| 日韩AV成人无码久久电影| 亚洲熟妇视频| 国产精品久久777777| 日韩中文无码电影| 欧美一级性爱视频| 狠狠的操| 天堂a在线8| 亚洲无码制服| 亚洲国产女人| 欧美熟妇BBB搡BBB| 丁香五月中文字幕| 亚洲欧美另类图片| 日本狠狠操| 日韩理论片| 亚洲精品无码免费| 天天看天天日| 日韩一区二区三免费高清在线观看 | 无码秘蜜桃吴梦梦| 中文字幕日本| 大色鬼在线天堂精品| 久久精品夜色噜噜亚洲A∨| 国产777| 国产精品久久久久久久久久久久久久久久 | 日韩在线免费| 日韩不卡av| 午夜福利在线视频| 亚洲操逼无码| 午夜福利视频网站| 中文字幕有码视频| 看A片在线| 久久久成人免费电影| 菊花综合网| 奇米色婷婷|