Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 精品成人在线视频,国产精品成人免费视频,国产精品在线播放

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Apache POI使用詳解(看完這篇基本上能應付工

          Apache POI使用詳解(看完這篇基本上能應付工作中常用的excel)

          號主要用于分享企業中常用的技術,更加側重于實用,歡迎關注,便于瀏覽其它更多實用的歷史文章。

          一 :簡介

          開發中經常會設計到excel的處理,如導出Excel,導入Excel到數據庫中,操作Excel目前有兩個框架,一個是apache 的poi, 另一個是 Java Excel

          Apache POI 簡介是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式檔案讀和寫的功能。POI為“Poor Obfuscation Implementation”的首字母縮寫,意為“可憐的模糊實現”。

          官方主頁: http://poi.apache.org/index.html

          API文檔: http://poi.apache.org/apidocs/index.html

          Java Excel是一開放源碼項目,通過它Java開發人員可以讀取Excel文件的內容、創建新的Excel文件、更新已經存在的Excel文件。jxl 由于其小巧 易用的特點, 逐漸已經取代了 POI-excel的地位, 成為了越來越多的java開發人員生成excel文件的首選。

          由于apache poi 在項目中用的比較多,本篇博客只講解apache poi,不講jxl

          二:Apache POI常用的類

          • HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能。
          • XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。
          • HWPF - 提供讀寫Microsoft Word DOC97格式檔案的功能。
          • XWPF - 提供讀寫Microsoft Word DOC2003格式檔案的功能。
          • HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。
          • HDGF - 提供讀Microsoft Visio格式檔案的功能。
          • HPBF - 提供讀Microsoft Publisher格式檔案的功能。
          • HSMF - 提供讀Microsoft Outlook格式檔案的功能。

          在開發中我們經常使用HSSF用來操作Excel處理表格數據,對于其它的不經常使用。

          HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。

          常用的類和方法

          • HSSFWorkbook :工作簿,代表一個excel的整個文檔
          • HSSFWorkbook();// 創建一個新的工作簿
          • HSSFWorkbook(InputStream inputStream); // 創建一個關聯輸入流的工作簿,可以將一個excel文件封裝成工作簿
          • HSSFSheet createSheet(String sheetname); 創建一個新的Sheet
          • HSSFSheet getSheet(String sheetName); 通過名稱獲取Sheet
          • HSSFSheet getSheetAt(int index); // 通過索引獲取Sheet,索引從0開始
          • HSSFCellStyle createCellStyle(); 創建單元格樣式
          • int getNumberOfSheets(); 獲取sheet的個數
          • setActiveSheet(int index); 設置默認選中的工作表
          • write();
          • write(File newFile);
          • write(OutputStream stream);
          • HSSFSheet:工作表
          • HSSFRow createRow(int rownum); 創建新行,需要指定行號,行號從0開始
          • HSSFRow getRow(int index); 根據索引獲取指定的行
          • int addMergedRegion(CellRangeAddress region); 合并單元格
          • CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol); 單元格范圍, 用于合并單元格,需要指定要合并的首行、最后一行、首列、最后一列。
          • autoSizeColumn(int column); 自動調整列的寬度來適應內容
          • getLastRowNum(); 獲取最后的行的索引,沒有行或者只有一行的時候返回0
          • setColumnWidth(int columnIndex, int width); 設置某一列的寬度,width=字符個數 * 256,例如20個字符的寬度就是20 * 256
          • HSSFRow :行
          • HSSFCell createCell(int column); 創建新的單元格
          • HSSFCell setCell(shot index);
          • HSSFCell getCell(shot index);
          • setRowStyle(HSSFCellStyle style); 設置行樣式
          • short getLastCellNum(); 獲取最后的單元格號,如果單元格有第一個開始算,lastCellNum就是列的個數
          • setHeightInPoints(float height); 設置行的高度
          • HSSFCell:單元格
          • setCellValue(String value); 設置單元格的值
          • setCellType(); 設置單元格類型,如 字符串、數字、布爾等
          • setCellStyle(); 設置單元格樣式
          • String getStringCellValue(); 獲取單元格中的字符串值
          • setCellStyle(HSSFCellStyle style); 設置單元格樣式,例如字體、加粗、格式化
          • setCellFormula(String formula); 設置計算公式,計算的結果作為單元格的值,也提供了異常常用的函數,如求和"sum(A1,C1)"、日期函數、字符串相關函數、CountIf和SumIf函數、隨機數函數等
          • HSSFCellStyle :單元格樣式
          • setFont(Font font); 為單元格設置字體樣式
          • setAlignment(HorizontalAlignment align); // 設置水平對齊方式
          • setVerticalAlignment(VerticalAlignment align); // 設置垂直對齊方式
          • setFillPattern(FillPatternType fp);
          • setFillForegroundColor(short bg); 設置前景色
          • setFillBackgroundColor(short bg); 設置背景顏色
          • HSSFFont:字體,
          • setColor(short color);// 設置字體顏色
          • setBold(boolean bold); // 設置是否粗體
          • setItalic(boolean italic); 設置傾斜
          • setUnderline(byte underline); 設置下劃線
          • HSSFName:名稱
          • HSSFDataFormat :日期格式化
          • HSSFHeader : Sheet的頭部
          • HSSFFooter :Sheet的尾部
          • HSSFDateUtil :日期工具
          • HSSFPrintSetup :打印設置
          • HSSFErrorConstants:錯誤信息表

          Excel中的工作簿、工作表、行、單元格中的關系:

          • 一個Excel文件對應于一個workbook(HSSFWorkbook),
          • 一個workbook可以有多個sheet(HSSFSheet)組成,
          • 一個sheet是由多個row(HSSFRow)組成,
          • 一個row是由多個cell(HSSFCell)組成

          三:基礎示例

          首先引入apache poi的依賴

          <dependency> 
           <groupId>org.apache.poi</groupId> 
           <artifactId>poi</artifactId> 
           <version>3.8</version> 
          </dependency>

          示例一:在桌面上生成一個Excel文件

          public static void createExcel() throws IOException{
          	// 獲取桌面路徑
          	FileSystemView fsv=FileSystemView.getFileSystemView();
          	String desktop=fsv.getHomeDirectory().getPath();
          	String filePath=desktop + "/template.xls";
          	
          	File file=new File(filePath);
          	OutputStream outputStream=new FileOutputStream(file);
          	HSSFWorkbook workbook=new HSSFWorkbook();
          	HSSFSheet sheet=workbook.createSheet("Sheet1");
          	HSSFRow row=sheet.createRow(0);
          	row.createCell(0).setCellValue("id");
          	row.createCell(1).setCellValue("訂單號");
          	row.createCell(2).setCellValue("下單時間");
          	row.createCell(3).setCellValue("個數");
          	row.createCell(4).setCellValue("單價");
          	row.createCell(5).setCellValue("訂單金額");
          	row.setHeightInPoints(30); // 設置行的高度
          	
          	HSSFRow row1=sheet.createRow(1);
          	row1.createCell(0).setCellValue("1");
          	row1.createCell(1).setCellValue("NO00001");
          	
          	// 日期格式化
          	HSSFCellStyle cellStyle2=workbook.createCellStyle();
          	HSSFCreationHelper creationHelper=workbook.getCreationHelper();
          	cellStyle2.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
          	sheet.setColumnWidth(2, 20 * 256); // 設置列的寬度
          	
          	HSSFCell cell2=row1.createCell(2);
          	cell2.setCellStyle(cellStyle2);
          	cell2.setCellValue(new Date());
          	
          	row1.createCell(3).setCellValue(2);
          	
          	
          	// 保留兩位小數
          	HSSFCellStyle cellStyle3=workbook.createCellStyle();
          	cellStyle3.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
          	HSSFCell cell4=row1.createCell(4);
          	cell4.setCellStyle(cellStyle3);
          	cell4.setCellValue(29.5);
          	
          	
          	// 貨幣格式化
          	HSSFCellStyle cellStyle4=workbook.createCellStyle();
          	HSSFFont font=workbook.createFont();
          	font.setFontName("華文行楷");
          	font.setFontHeightInPoints((short)15);
          	font.setColor(HSSFColor.RED.index);
          	cellStyle4.setFont(font);
          	
          	HSSFCell cell5=row1.createCell(5);
          	cell5.setCellFormula("D2*E2"); // 設置計算公式
          	
          	// 獲取計算公式的值
          	HSSFFormulaEvaluator e=new HSSFFormulaEvaluator(workbook);
          	cell5=e.evaluateInCell(cell5);
          	System.out.println(cell5.getNumericCellValue());
          	
          	workbook.setActiveSheet(0);
          	workbook.write(outputStream);
          	outputStream.close();
          }

          示例2:讀取Excel,解析數據

          public static void readExcel() throws IOException{
          	FileSystemView fsv=FileSystemView.getFileSystemView();
          	String desktop=fsv.getHomeDirectory().getPath();
          	String filePath=desktop + "/template.xls";
          	
          	FileInputStream fileInputStream=new FileInputStream(filePath);
          	BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
          	POIFSFileSystem fileSystem=new POIFSFileSystem(bufferedInputStream);
          	HSSFWorkbook workbook=new HSSFWorkbook(fileSystem);
          	HSSFSheet sheet=workbook.getSheet("Sheet1");
          	
          	int lastRowIndex=sheet.getLastRowNum();
          	System.out.println(lastRowIndex);
          	for (int i=0; i <=lastRowIndex; i++) {
          		HSSFRow row=sheet.getRow(i);
          		if (row==null) { break; }
          		
          		short lastCellNum=row.getLastCellNum();
          		for (int j=0; j < lastCellNum; j++) {
          			String cellValue=row.getCell(j).getStringCellValue();
          			System.out.println(cellValue);
          		}
          	}
          	
          	
          	bufferedInputStream.close();
          }

          四:Java Web 中導出和導入Excel

          1、導出示例

          @SuppressWarnings("resource")
          @RequestMapping("/export") 
          public void exportExcel(HttpServletResponse response, HttpSession session, String name) throws Exception { 
          	
          	String[] tableHeaders={"id", "姓名", "年齡"}; 
          	
          	HSSFWorkbook workbook=new HSSFWorkbook();
          	HSSFSheet sheet=workbook.createSheet("Sheet1");
          	HSSFCellStyle cellStyle=workbook.createCellStyle(); 
          	cellStyle.setAlignment(HorizontalAlignment.CENTER); 
          	cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
          	
          	Font font=workbook.createFont(); 
          	font.setColor(HSSFColor.RED.index); 
          	font.setBold(true);
          	cellStyle.setFont(font);
          	
          	// 將第一行的三個單元格給合并
          	sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
          	HSSFRow row=sheet.createRow(0);
          	HSSFCell beginCell=row.createCell(0);
          	beginCell.setCellValue("通訊錄");	
          	beginCell.setCellStyle(cellStyle);
          	
          	row=sheet.createRow(1);
          	// 創建表頭
          	for (int i=0; i < tableHeaders.length; i++) {
          		HSSFCell cell=row.createCell(i);
          		cell.setCellValue(tableHeaders[i]);
          		cell.setCellStyle(cellStyle); 
          	}
          	
          	List<User> users=new ArrayList<>();
          	users.add(new User(1L, "張三", 20));
          	users.add(new User(2L, "李四", 21));
          	users.add(new User(3L, "王五", 22));
          	
          	for (int i=0; i < users.size(); i++) {
          		row=sheet.createRow(i + 2);
          		
          		User user=users.get(i);
          		row.createCell(0).setCellValue(user.getId()); 
          		row.createCell(1).setCellValue(user.getName()); 
          		row.createCell(2).setCellValue(user.getAge()); 
          	}
          	
          	OutputStream outputStream=response.getOutputStream(); 
          	response.reset(); 
          	response.setContentType("application/vnd.ms-excel"); 
          	response.setHeader("Content-disposition", "attachment;filename=template.xls"); 
          	workbook.write(outputStream);
          	outputStream.flush(); 
          	outputStream.close();
          }

          2、導入示例

          1、使用SpringMVC上傳文件,需要用到commons-fileupload

          <dependency>
          	<groupId>commons-fileupload</groupId>
          	<artifactId>commons-fileupload</artifactId>
          	<version>1.3</version>
          </dependency>

          2、需要在spring的配置文件中配置一下multipartResolver

          <bean name="multipartResolver" 
           	class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
          	<property name="defaultEncoding" value="UTF-8" />
          </bean>

          3、index.jsp

          <a href="/Spring-Mybatis-Druid/user/export">導出</a> <br/>
          <form action="/Spring-Mybatis-Druid/user/import" enctype="multipart/form-data" method="post">
          	<input type="file" name="file"/> 
          	<input type="submit" value="導入Excel">
          </form>

          4、解析上傳的.xls文件

          @SuppressWarnings("resource")
          @RequestMapping("/import")
          public void importExcel(@RequestParam("file") MultipartFile file) throws Exception{
          	InputStream inputStream=file.getInputStream();
          	BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
          	POIFSFileSystem fileSystem=new POIFSFileSystem(bufferedInputStream);
          	HSSFWorkbook workbook=new HSSFWorkbook(fileSystem);
          	//HSSFWorkbook workbook=new HSSFWorkbook(file.getInputStream());
          	HSSFSheet sheet=workbook.getSheetAt(0);
          	
          	int lastRowNum=sheet.getLastRowNum();
          	for (int i=2; i <=lastRowNum; i++) {
          		HSSFRow row=sheet.getRow(i);
          		int id=(int) row.getCell(0).getNumericCellValue();
          		String name=row.getCell(1).getStringCellValue();
          		int age=(int) row.getCell(2).getNumericCellValue();
          		
          		System.out.println(id + "-" + name + "-" + age);
          	}
          }

          導出效果:

          導入效果:

          實戰錄》導語

          云端衛士《實戰錄》欄目定期會向粉絲朋友們分享一些在開發運維中的經驗和技巧,2017年我們將一如既往地為朋友們奉獻更多優質內容。本期分享人為云端衛士安全運營工程師史懷周,主要介紹Java中多重格式報表導出方案比較。

          系統中經常存在導出報告的需求,而導出的框架五花八門,該如何選擇呢?

          本文對幾種常見的框架進行比較,希望可以在遇到導出需求時,為你提供一些參考。常見的導出格式包括Word、 Excel和PDF等,下面針對對這三種格式進行說明。

          Word

          Word一般用于導出包含圖片,表格等的分析匯總類報告。

          1.JACOB

          jacob的原理是使用自帶的DLL動態鏈接庫,通過JNDI的方式實現對COM程序的調用。它要求主機必須是Windows平臺,當大量請求同時操作時,有一定幾率做成office資源的死鎖。種種情況都是我們不能接受的,所以適用面不廣。

          2.java2word

          java2word是通過java api調用MS Office文檔的組件??梢詫崿F打開文檔,創建文檔,插入圖片,創建表格等多種操作。但同樣的,必須要在Windows平臺上才能使用。所以也不納入考慮范圍。

          3.POI

          POI出了可以導出Excel,還可以導出Word。相信很多人壓根沒有想到,但是POI對word的支持十分有限,不能設置樣式。如果導出的報表格式比較復雜,這種方案也是愛莫能助的。

          4.FreeMarker

          Freemarker是模板工具,而word是文檔,兩者如何搭配呢?其實很簡單。word允許通過Office轉換成標準XML格式,而word中的內容就是一個個的xml標簽。

          所以我們可以先用office制作word模板,另存為xml之后,將其中的需要動態生成的部分改成變量,再通過freemarker生成即可(注意生成的文件后綴名要改為.doc或.docx)。而word中的圖片該怎么處理呢?word中的圖片是以base64存儲的,所以只要將圖片轉換為base64,然后放在對應的變量上就可以了。

          這種方式的最大缺點是word轉為xml格式后,結構相對復雜,模板的制作比較麻煩。但綜合來說,這是最佳的Word導出方案。

          Excel

          Excel通常用來導出數據類型的報表。比如某段時間內的DDoS攻擊流量匯總等。Excel的導出比較常見,網上案例也比較多,大部分都使用JXL或POI這兩個工具。

          1.JXL

          JXL對中文支持很好,且操作簡單。支持圖片和圖表,但是支持有限,而且圖片只支持PNG格式。大數據量Excel導出時的效率較差。

          2.POI

          POI在Excel導出中應該是最常用的方案了。它對Excel的很全面,支持使用公式、宏。對格式支持很好,可以任意定義單元格的格式。同時在大數據量Excel的生成上,效率很高。

          PDF1.jasper report

          jasper report是比較常用的一種生成PDF的方式。它的設計思路是先生成模板,再將數據嵌入模板中。它的缺點是模板生成復雜,規則眾多,需要借助IDE的可視化工具進行編輯,入門和使用都比較困難。

          2.itext

          iText是十分好用的一個PDF開源軟件。支持使用圖片、HTML頁面和直接用Java代碼等多種方式生成PDF。IText的API很豐富,對PDF的格式支持很好。iText有一個顯著的缺點,對HTML的格式要求特別嚴格,且無法識別很多html的tag和attribute,無法識別css,需要使用API函數來設置樣式。如果想要使用HTML直接生成PDF,IText的缺點確認是讓人抓狂。在HTML上畫樣式要比使用API一行一行繪制PDF樣式簡單的多。怎么辦呢?如果你有一個可訪問的頁面地址,你可以試試使用下面的方式。

          3.iText+phantomjs

          PhantomJS 是一個基于 WebKit 的服務器端 JavaScript API。PhantomJS可以用于頁面自動化,網絡監測,網頁截屏,以及無界面測試等。我們可以通過它對要生成PDF的URL截屏,然后將圖片轉成PDF。這種方式的缺點是,生成的PDF內的文字全部不可選中,沒辦法復制其中內容。

          4.iText+flying sauser

          flying sauser是基于IText的一個開源軟件。它解決了iText對HTML支持弱的痛點。而且生成的PDF內容全部可以選中復制。缺點是它仍然對HTML格式要求嚴格。

          文件開頭必須是

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

          <html xmlns="http://www.w3.org/1999/xhtml">

          所有的標簽必須閉合。特殊字符需要使用<![CDATA[]]>括起來。但和前面幾種方案比起來,這仍然算是比較優秀的解決方案了。b( ̄▽ ̄)d

          下是江西教育考試院公布的江西省2020年具備高職單招資格的學校名單,共計62所,供大家參考:

          序號 高校名稱 高校招生簡章網址

          1江西科技學院http://zjc.jxut.edu.cn/ygzs.htm

          2南昌理工學院http://zsb.nut.edu.cn

          3江西服裝學院http://bm.jift.edu.cn/dz/

          4南昌工學院http://zsb.ncpu.edu.cn/

          5江西工程學院http://zsc.jxue.edu.cn

          6江西應用科技學院http://www.jxcsedu.com/zhaosheng/

          7南昌職業大學http://zsb.nczyxy.com

          8江西軟件職業技術大學https://www.jxuspt.com/Z07_ZSJY/zhzoshengianjie.jsp

          9江西醫學高等專科學校http://zsjy.jxyxgz.cn/

          10宜春幼兒師范高等??茖W校http://www.gacycu.cn/newsshow.asp?id=1670

          11江西師范高等專科學校http://www.jxsfgz.com/zsb

          12上饒幼兒師范高等專科學校http://www.srygz.cn/nd.jsp?id=63

          13撫州幼兒師范高等專科學校http://www.fzpec.cn/show-61-1398-1.html

          14九江職業大學http://zsc.jjvu.jx.cn/index.aspx

          15九江職業技術學院http://ddzs.zbrcw.cn/

          16江西工業職業技術學院http://zsw.jxgzy.cn

          17江西電力職業技術學院http://www.jxdlzy.com

          18江西旅游商貿職業學院http://zsb.jxlsxy.com

          19江西機電職業技術學院http://zs.jxjdxy.edu.cn/html/zhaoshengxinxi/index.html

          20江西陶瓷工藝美術職業技術學院www.jxgymy.com

          21江西環境工程職業學院www.jxhjxy.com

          22江西信息應用職業技術學院http://www.jxcia.com

          23江西工業工程職業技術學院http://www.jxgcxy.net

          24江西交通職業技術學院https://zsb.jxjtxy.edu.cn

          25江西藝術職業學院https://www.jxysedu.com

          26江西財經職業學院http://www.jxvc.jx.cn/

          27江西司法警官職業學院www.jxsfjy.cn

          28江西應用技術職業學院http://www.jxyy.edu.cn/zsw/

          29江西現代職業技術學院http://zsw.jxxdxy.edu.cn/

          30江西外語外貿職業學院http://zs.jxcfs.com/

          31江西工業貿易職業技術學院http://zsc.jxgmxy.com/

          32江西應用工程職業學院http://zsc.jxatei.net/

          33江西建設職業技術學院http://www.jxjsxy.edu.cn/news-list-zhaojshengfzhuanflany.html

          34宜春職業技術學院http://zs.ycvc.jx.cn

          35撫州職業技術學院http://www.fzjsxy.cn/

          36江西生物科技職業學院http://zsw.jxswkj.com/ddzs.htm

          37江西衛生職業學院http://zsw.jxhlxy.com.cn

          38江西青年職業學院http://zs.jxqy.edu.cn/

          39上饒職業技術學院http://zs.srzy.cn/news-list-zhaoshengjianzhang.html

          40江西農業工程職業學院http://www.jxaevc.com

          41江西科技職業學院http://www.jxkeda.com/

          42江西航空職業技術學院http://www.jhxy.com.cn/?a=web.articles&uid=9059&id=3864

          43贛西科技職業學院www.ganxidx.com

          44江西制造職業技術學院http://www.jxmtc.com/

          45江西工程職業學院http://www.jxrtvu.com/gczyxy/2020/0216/c185a19015/page.html

          46江西泰豪動漫職業學院https://www.thdm.edu.cn/

          47江西楓林涉外經貿職業學院http://www.fenglin.org

          48江西傳媒職業學院http://zsc.jxmvc.cn/

          49江西冶金職業技術學院http://zs.jxyjxy.com/

          50江西新能源科技職業學院http://www.tynxy.com/

          51江西工商職業技術學院http://www.jxgsxy.net/Item/list.asp?id=351

          52景德鎮陶瓷職業技術學院http://www.jcivt.com/zsc/index.asp

          53共青科技職業學院www.gqkj.com.cn

          54江西水利職業學院https://mp.weixin.qq.com/s/FdP8ZOaXkwu3F0ry5mZLgg

          55吉安職業技術學院http://www.japt.com.cn/zsxxw/info/1078/1262.htm

          56江西洪州職業學院www.jxhzxy.com

          57南昌影視傳播職業學院http://www.ncyscb.com/

          58贛南衛生健康職業學院http://zsjy.gnhvc.cn/zs.asp

          59萍鄉衛生職業學院http://www.pxhvc.com/

          60江西婺源茶業職業學院http://jxtvc.com/Item/list.asp?id=1770

          61江西經濟管理干部學院http://zsb.jiea.cn/

          62贛州職業技術學院http://www.gzpt.edu.cn/


          主站蜘蛛池模板: 中文字幕一区二区三区5566| 国产裸体歌舞一区二区| 制服丝袜一区在线| 一区二区三区四区在线观看视频| 日韩精品一区二区三区中文| 精品国产高清自在线一区二区三区| 人妻体内射精一区二区三四| 国产一区二区三区在线看| 精品人妻一区二区三区四区| 一区二区三区四区视频在线| 国产成人免费一区二区三区| 精品一区二区三区在线播放| 无码精品久久一区二区三区| 亚洲av成人一区二区三区在线观看 | 一区二区三区伦理高清| 国产一区中文字幕| 国产成人无码AV一区二区在线观看| 国产精品无码一区二区三区电影| 一区二区三区免费在线视频 | 无码一区二区三区在线观看| 亚洲爆乳精品无码一区二区三区| 一区二区三区视频在线播放| 精品无码国产一区二区三区麻豆| 亚洲国产欧美一区二区三区| 亚洲一区无码中文字幕乱码| 一区二区中文字幕| 91大神在线精品视频一区| 99久久人妻精品免费一区| 91在线精品亚洲一区二区| 2022年亚洲午夜一区二区福利| 亚洲国产系列一区二区三区 | 国产伦精品一区二区三区精品| 亚洲AV综合色区无码一区| 香蕉免费看一区二区三区| 久久精品动漫一区二区三区| 人妻av无码一区二区三区| 香蕉视频一区二区三区| 男人的天堂亚洲一区二区三区 | 狠狠做深爱婷婷综合一区 | 国产精品毛片a∨一区二区三区| 国产成人一区二区三区在线|