久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

SpringBoot中EasyExcel實現Excel文件的導入導出

瀏覽:140日期:2022-06-16 18:07:41

前言

在我們日常的開發過程中經常會使用Excel文件的形式來批量地上傳下載系統數據,我們最常用的工具是Apache poi,但是如果數據到底上百萬時,將會造成內存溢出的問題,那么我們怎么去實現百萬數據批量導入導出。

正文

Easyexcel

Easyexcel 是阿里巴巴的開源項目,用來優化Excel文件處理過程:

poi消耗內存嚴重:Java解析、生成Excel比較有名的框架有Apache poi、jxl。但他們都存在一個嚴重的問題就是非常的耗內存,poi有一套SAX模式的API可以一定程度的解決一些內存溢出的問題,但poi還是有一些缺陷,比如07版Excel解壓縮以及解壓后存儲都是在內存中完成的,內存消耗依然很大。 easyexcel針對內存做出了優化:重寫了poi對07版Excel的解析,能夠原本一個3M的excel用POI sax依然需要100M左右內存降低到幾M,并且再大的excel不會出現內存溢出。

SpringBoot中EasyExcel實現Excel文件的導入導出

SpringBoot+ EasyExcel實現Excel文件的導入導出

導入依賴

<!--lombok--><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> <optional>true</optional></dependency><!--easyExcel--><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beat1</version></dependency><!--fastjson--><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> </exclusions></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId></dependency>

為了防止Excel文件被破壞在pom.xml添加以下內容

<build> <plugins> <!-- 讓maven不編譯xls文件,但仍將其打包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration><nonFilteredFileExtensions> <nonFilteredFileExtension>xls</nonFilteredFileExtension> <nonFilteredFileExtension>xlsx</nonFilteredFileExtension></nonFilteredFileExtensions> </configuration> </plugin> </plugins></build>

application.propertis:配置文件

#temp filesproject.tmp.files.path=/Users/mac/Desktop/image/tmp/files/

在SpringBoot啟動類添加臨時文件設置

@Value('${project.tmp.files.path}')public String filesPath;@BeanMultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //設置路徑xxx factory.setLocation(filesPath); return factory.createMultipartConfig();}

ExcelUtil:Excel工具類

@Slf4jpublic class ExcelUtil { private static Sheet initSheet; static { initSheet = new Sheet(1, 0); initSheet.setSheetName('sheet'); //設置自適應寬度 initSheet.setAutoWidth(Boolean.TRUE); } public static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) { try { response.setCharacterEncoding('UTF-8'); response.setContentType('application/octet-stream;charset=utf-8'); response.setHeader('Content-Disposition', 'attachment;filename=' + URLEncoder.encode(fileName, 'UTF-8')); workbook.write(response.getOutputStream()); } catch (IOException e) { // throw new NormalException(e.getMessage()); } } /** * 讀取少于1000行數據 * * @param filePath 文件絕對路徑 * @return */ public static List<Object> readLessThan1000Row(String filePath) { return readLessThan1000RowBySheet(filePath, null); } /** * 讀小于1000行數據, 帶樣式 * filePath 文件絕對路徑 * initSheet : * sheetNo: sheet頁碼,默認為1 * headLineMun: 從第幾行開始讀取數據,默認為0, 表示從第一行開始讀取 * clazz: 返回數據List<Object> 中Object的類名 */ public static List<Object> readLessThan1000RowBySheet(String filePath, Sheet sheet) { if (!StringUtils.hasText(filePath)) { return null; } sheet = sheet != null ? sheet : initSheet; InputStream fileStream = null; try { fileStream = new FileInputStream(filePath); return EasyExcelFactory.read(fileStream, sheet); } catch (FileNotFoundException e) { log.info('找不到文件或文件路徑錯誤, 文件:{}', filePath); } finally { try {if (fileStream != null) { fileStream.close();} } catch (IOException e) {log.info('excel文件讀取失敗, 失敗原因:{}', e); } } return null; } /** * 讀大于1000行數據 * * @param filePath 文件覺得路徑 * @return */ public static List<Object> readMoreThan1000Row(String filePath) { return readMoreThan1000RowBySheet(filePath, null); } /** * 讀大于1000行數據, 帶樣式 * * @param filePath 文件覺得路徑 * @return */ public static List<Object> readMoreThan1000RowBySheet(String filePath, Sheet sheet) { if (!StringUtils.hasText(filePath)) { return null; } sheet = sheet != null ? sheet : initSheet; InputStream fileStream = null; try { fileStream = new FileInputStream(filePath); ExcelListener excelListener = new ExcelListener(); EasyExcelFactory.readBySax(fileStream, sheet, excelListener); return excelListener.getDatas(); } catch (FileNotFoundException e) { log.error('找不到文件或文件路徑錯誤, 文件:{}', filePath); } finally { try {if (fileStream != null) { fileStream.close();} } catch (IOException e) {log.error('excel文件讀取失敗, 失敗原因:{}', e); } } return null; } /** * 讀大于1000行數據, 帶樣式 * * @return */ public static List<Object> readMoreThan1000RowBySheetFromInputStream(InputStream inputStream, Sheet sheet) { sheet = sheet != null ? sheet : initSheet; InputStream fileStream = null; ExcelListener excelListener = new ExcelListener(); EasyExcelFactory.readBySax(inputStream, sheet, excelListener); return excelListener.getDatas(); } /** * 生成excle * * @param filePath 絕對路徑 * @param data 數據源 * @param head 表頭 */ public static void writeBySimple(String filePath, List<List<Object>> data, List<String> head) { writeSimpleBySheet(filePath, data, head, null); } /** * 生成excle * * @param filePath 路徑 * @param data 數據源 * @param sheet excle頁面樣式 * @param head 表頭 */ public static void writeSimpleBySheet(String filePath, List<List<Object>> data, List<String> head, Sheet sheet) { sheet = (sheet != null) ? sheet : initSheet; if (head != null) { List<List<String>> list = new ArrayList<>(); head.forEach(h -> list.add(Collections.singletonList(h))); sheet.setHead(list); } OutputStream outputStream = null; ExcelWriter writer = null; try { outputStream = new FileOutputStream(filePath); writer = EasyExcelFactory.getWriter(outputStream); writer.write1(data, sheet); } catch (FileNotFoundException e) { log.error('找不到文件或文件路徑錯誤, 文件:{}', filePath); } finally { try {if (writer != null) { writer.finish();}if (outputStream != null) { outputStream.close();} } catch (IOException e) {log.error('excel文件導出失敗, 失敗原因:{}', e); } } } /** * 生成excle * * @param filePath 路徑 * @param data 數據源 */ public static void writeWithTemplate(String filePath, List<? extends BaseRowModel> data) { writeWithTemplateAndSheet(filePath, data, null); } /** * 生成excle * * @param filePath 路徑 * @param data 數據源 * @param sheet excle頁面樣式 */ public static void writeWithTemplateAndSheet(String filePath, List<? extends BaseRowModel> data, Sheet sheet) { if (CollectionUtils.isEmpty(data)) { return; } sheet = (sheet != null) ? sheet : initSheet; sheet.setClazz(data.get(0).getClass()); OutputStream outputStream = null; ExcelWriter writer = null; try { outputStream = new FileOutputStream(filePath); writer = EasyExcelFactory.getWriter(outputStream); writer.write(data, sheet); } catch (FileNotFoundException e) { log.error('找不到文件或文件路徑錯誤, 文件:{}', filePath); } finally { try {if (writer != null) { writer.finish();}if (outputStream != null) { outputStream.close();} } catch (IOException e) {log.error('excel文件導出失敗, 失敗原因:{}', e); } } } /** * 生成多Sheet的excle * * @param filePath 路徑 * @param multipleSheelPropetys */ public static void writeWithMultipleSheel(String filePath, List<MultipleSheelPropety> multipleSheelPropetys) { if (CollectionUtils.isEmpty(multipleSheelPropetys)) { return; } OutputStream outputStream = null; ExcelWriter writer = null; try { outputStream = new FileOutputStream(filePath); writer = EasyExcelFactory.getWriter(outputStream); for (MultipleSheelPropety multipleSheelPropety : multipleSheelPropetys) {Sheet sheet = multipleSheelPropety.getSheet() != null ? multipleSheelPropety.getSheet() : initSheet;if (!CollectionUtils.isEmpty(multipleSheelPropety.getData())) { sheet.setClazz(multipleSheelPropety.getData().get(0).getClass());}writer.write(multipleSheelPropety.getData(), sheet); } } catch (FileNotFoundException e) { log.error('找不到文件或文件路徑錯誤, 文件:{}', filePath); } finally { try {if (writer != null) { writer.finish();}if (outputStream != null) { outputStream.close();} } catch (IOException e) {log.error('excel文件導出失敗, 失敗原因:{}', e); } } } /*********************匿名內部類開始,可以提取出去******************************/ @Data public static class MultipleSheelPropety { private List<? extends BaseRowModel> data; private Sheet sheet; } /** * 解析監聽器, * 每解析一行會回調invoke()方法。 * 整個excel解析結束會執行doAfterAllAnalysed()方法 * * @author: chenmingjian * @date: 19-4-3 14:11 */ @Getter @Setter public static class ExcelListener extends AnalysisEventListener { private List<Object> datas = new ArrayList<>(); /** * 逐行解析 * object : 當前行的數據 */ @Override public void invoke(Object object, AnalysisContext context) { //當前行 // context.getCurrentRowNum() if (object != null) {datas.add(object); } } /** * 解析完所有數據后會調用該方法 */ @Override public void doAfterAllAnalysed(AnalysisContext context) { //解析結束銷毀不用的資源 } } /************************匿名內部類結束,可以提取出去***************************/}

CommonUtil:工具類

public class CommonUtil {/** * 生成32位編碼,不含橫線 * * @return uuid串 */public static String getUUID() { String uuid = UUID.randomUUID().toString().trim().replaceAll('-', ''); return uuid.toUpperCase();}/** * 得到當前日期格式化后的字符串,格式:yyyy-MM-dd(年-月-日) * @return 當前日期格式化后的字符串 */public static String getTodayStr(){ return new SimpleDateFormat('yyyy-MM-dd').format(new Date()) ;}/** * 將對象轉化成json * * @param t * @return * @throws JsonProcessingException */public static <T> String toJson(T t) throws JsonProcessingException { return OBJECT_MAPPER.get().writeValueAsString(t);}}

UserPojoRes:實體類

@Setter@Getter@ToStringpublic class UserPojoRes extends BaseRowModel implements Serializable { private static final long serialVersionUID = -2145503717390503506L; /** * 主鍵 */ @ExcelProperty(value = 'ID', index = 0) private String id; /** * 姓名 */ @ExcelProperty(value = '用戶名', index = 1) private String name; public UserPojoRes(String id, String name) { this.id = id; this.name = name; } public UserPojoRes(){ }}

驗證

模板下載

這里將模板文件放在resources中

@GetMapping('/exportExcelTempalte')@ApiOperation(value = '下載導入模板')public void exportExcelTempalte(HttpServletResponse response) throws Exception { //Resource目錄中的文件 String filePath = '/excels/導入模板.xlsx'; ClassPathResource classPathResource = new ClassPathResource(filePath); Workbook workbook=WorkbookFactory.create(classPathResource.getInputStream()); ExcelUtil.downLoadExcel('導入模板.xlsx', response, workbook);}

Excel文件導入

@PostMapping('/importExcel')@ApiOperation(value = 'Excel文件導入')public Response importExcel(HttpServletRequest request, MultipartFile file, HttpServletResponse response) throws Exception { List<Object> objects = ExcelUtil.readMoreThan1000RowBySheetFromInputStream(file.getInputStream(),null); List<UserPojoRes> list = new ArrayList<>(); for (Object o : objects) { UserPojoRes userPojoRes = new UserPojoRes(); List<String> stringList = (List<String>) o; userPojoRes.setId(stringList.get(0) != null ? stringList.get(0).toString() : ''); userPojoRes.setName(stringList.get(1) != null ? stringList.get(0).toString() : ''); list.add(userPojoRes); } String json = CommonUtil.toJson(list); return new Response(json);}

SpringBoot中EasyExcel實現Excel文件的導入導出

Excel文件導出

@Value('${project.tmp.files.path}')public String filesPath;@GetMapping('/exportExcel')@ApiOperation(value = 'Excel文件導出')public void exportExcel(HttpServletResponse response) throws Exception { //創建臨時文件 String path = filesPath + CommonUtil.getUUID() + '.xlsx'; List<UserPojoRes> list = new ArrayList<>(); UserPojoRes userPojoRes = new UserPojoRes('009', '張三'); UserPojoRes userPojoRes1 = new UserPojoRes('009', '李四'); list.add(userPojoRes); list.add(userPojoRes1); ExcelUtil.writeWithTemplate(path, list); // 根據excel創建對象 Workbook workbook = WorkbookFactory.create(new FileInputStream(path)); String fileName = '用戶模塊' + CommonUtil.getTodayStr() + '.xlsx'; ExcelUtil.downLoadExcel(fileName, response, workbook);}

SpringBoot中EasyExcel實現Excel文件的導入導出

到此這篇關于SpringBoot中EasyExcel實現Excel文件的導入導出的文章就介紹到這了,更多相關Java Excel文件導入導出內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: excel
相關文章:
主站蜘蛛池模板: 久久精品123 | 免费观看一级视频 | 日本久久久亚洲精品 | 欧美一区在线观看视频 | 国产精品免费看 | 这里有精品在线视频 | 天堂在线中文 | 国产综合一区二区 | 国产视频久久久久久 | 美女久久久久久久久久久 | 夜夜夜操操操 | 天天综合网网欲色 | 九色在线观看 | 成人午夜精品 | 在线激情视频 | www.成人国产| 久久国产欧美日韩精品 | 国产在线乱 | 精品视频 | 黄色av网站免费看 | 欧美国产精品一区二区 | 欧美成人影院在线 | 第一色视频 | 亚洲精品电影在线观看 | 一区二区三区在线观看国产 | 国产精品三级在线 | 黄色天堂网| 欧一区二区 | 欧美在线视频一区二区 | 97热在线| 视频1区| 日本成人黄色网址 | 在线观看午夜免费视频 | 日产精品久久 | 天天操操| 超碰免费在 | 亚洲视频中文字幕 | 色视频网站在线观看 | 91精品久久久久久久 | 狠狠操精品视频 | 久久久夜夜夜 | 国产欧美中文字幕 | 大胆裸体gogo毛片免费看 | 成人欧美一区二区三区在线观看 | 日韩精品一区二区在线观看 | 在线播放91| 毛片99| 一区二区三区在线播放 | 亚洲欧美一区二区三区久久 | 日本阿v视频高清在线中文 中文二区 | 日韩成人在线播放 | 国产精品一卡二卡三卡 | 国产视频久久久久久久 | 日韩色视频 | 一区中文字幕 | 成人黄色在线观看 | 欧美日韩精品一区二区三区 | 欧美日韩黄色一级片 | 嫩草视频在线观看免费 | 日韩在线免费电影 | 亚洲综合在线视频 | 亚洲精品视频在线播放 | 精品成人免费一区二区在线播放 | 在线视频a | 亚洲欧洲日本国产 | 国产精品国产精品国产专区不片 | 91se在线| 免费一二区 | 青青草一区二区 | 亚洲欧美视频一区 | 手机亚洲第一页 | 色婷婷网| 91精品在线观看入口 | 欧洲另类交| 天天干夜夜骑 | 日本三级中国三级99人妇网站 | 一级一片免费视频 | 二区视频 | 人人干美女 | 中文字幕亚洲一区 | 国产精品亚洲一区二区三区在线 | 国产精品国色综合久久 | 日韩综合| 国产成人在线视频 | 免费观看一级视频 | 男女羞羞羞视频午夜视频 | 国产精品国产三级国产aⅴ原创 | 最新高清无码专区 | 91精品国产九九九久久久亚洲 | 美女131mm久久爽爽免费 | 午夜日韩 | 中文字幕一区二区三区乱码图片 | hh99me在线观看| 国产大胆自拍 | 97人人超碰 | 精品一区二区三区不卡 | 日韩成人一区 | 99久久精品免费看国产免费粉嫩 | 国产免费av在线 | www.日韩.com| 成人av教育 | 成人av免费在线观看 | 色吟av | 欧美一区二区三区在线 | 欧美综合一区二区 | 欧美福利视频 | 国产日韩精品视频 | 最近的中文字幕在线看视频 | 国产精品国产精品国产专区不蜜 | 国产精品一码二码三码在线 | 欧美日韩亚洲成人 | 黄色成人av | 亚洲激情在线观看 | 精品久久久久久久久久久久久久久久久久久 | 免费黄色小视频 | 成人精品一区二区三区 | 在线一区观看 | 成人在线视频网 | 国产亚洲精品精品国产亚洲综合 | 婷婷久久综合九色综合绿巨人 | 亚洲成人免费影院 | 国产成人精品a视频一区www | 日韩在线亚洲 | 一区二区三区日本 | 一区二区三区视频 | 免费视频一区 | 一区二区在线免费观看 | 亚洲精品电影在线观看 | 草草视频在线播放 | 国内精品一区二区 | 国产一区二区三区久久 | 成人av观看 | 欧美精品1 | www,四虎| 色爽av| 午夜爱爱毛片xxxx视频免费看 | 成年人在线视频 | www.久久精品 | 成人欧美一区二区三区白人 | 日韩精品 | 午夜黄色av| 亚洲一区二区三区四区在线观看 | 国产主播一区 | 亚洲视频成人 | av大全在线| 国产精品无码久久久久 | 黄色地址 | 久久国产精品久久久久久 | 亚洲一区二区三区视频免费观看 | 日韩一区二区在线观看视频 | 中文字幕一区在线 | 日韩一区中文 | 在线色网 | 99爱免费视频 | 国产精品久久久久久久久久久久冷 | 精品成人国产 | 九九资源站| 97久久超碰| 国产精品美女久久久久久久久久久 | 国产在线一区二区三区 | 免费观看一级黄色片 | 91精品久久久久久久久 | 99久久精品国产一区二区三区 | 99久精品 | 97影院在线午夜 | 本道综合精品 | 亚洲精品成人 | 久久国产一区二区 | 中文字幕日韩一区 | t66y最新地址一地址二69 | 99成人 | 人人草天天草 | 午夜999 | 成人一区二区三区 | 久久精品国产v日韩v亚洲 | 台湾佬成人网 | 日韩在线中文字幕 | 精品国产一区二区在线 | 欧美极品视频 | 亚洲国产精品精华液网站 | 久久小视频 | 国产精品美女久久久久久久久久久 | 成人精品视频 | 亚洲精品乱码久久久久久麻豆不卡 | 精品免费国产 | 高清一区二区 | 亚洲三区在线观看 | 视频久久精品 | 欧美在线不卡 | 国产精品美女久久久久久久久久久 | 玖玖在线免费视频 | 国产精品久久久久久一区二区三区 | 免费一区| 日本精品在线观看 | 免费国产黄网站在线观看视频 | 欧美一级片在线 | 国产成人精品一区二 | 日本精品网站 | 国产www网站 | av网站推荐| 国产精品视频一区二区免费不卡 | 久草免费在线 | 成人在线高清 | 91九色视频在线 | 亚洲欧美电影 | 免费av在线网站 | 国产一区二区三区在线 | 欧美成人一区二区三区片免费 | 日韩精品| 国产精品有限公司 | 欧美激情性国产欧美无遮挡 | 久久久天堂 | 日韩成人精品 | 欧美日韩亚洲国产综合 | 99re视频在线播放 | 国产精品久久久久久久美男 | 精品国产一区二区国模嫣然 | 日韩欧美在线综合 | 中文字幕国产区 | 91免费小视频| 欧美日韩成人在线播放 | 天堂一区| 亚洲综合在线播放 | 一区二区久久久 | 日韩色图在线观看 | 一级毛片在线 | 久久久久久免费毛片精品 | 亚洲一区中文字幕在线 | 欧美中文在线观看 | 亚洲精品高清视频 | 亚洲国产一区视频 | 男人天堂av网站 | 色狠狠一区 | 日本成人中文字幕在线观看 | 日韩精品久久理论片 | 天堂一区二区三区 | 欧美日韩精品一区二区在线播放 | 国产免费黄色 | 高清一区二区三区 | 日韩免费在线视频 | 久久久久久国产 | 精品国产乱码久久久久久影片 | 国产一级毛片电影 | 欧美激情视频一区二区三区在线播放 | 欧美一级黄视频 | 毛片一区二区 | 久久久av亚洲男天堂 | 亚洲最大免费视频 | 一级毛片观看 | 久久综合久久受 | 羞羞视频免费网站 | 综合一区二区三区 | www视频在线观看 | 色久天堂 | 国产视频福利在线 | 亚洲免费观看 | 日韩欧美中文在线 | 亚洲成人av在线 | 亚洲欧美日韩精品久久奇米色影视 | 精品中文字幕一区二区 | 日韩一二区 | 国产精品毛片无码 | 精品国产乱码久久久久久蜜柚 | 人人射人人草 | 亚洲一区在线视频 | 青青操天天干 | 国产精品一区二区三区四区 | 亚洲一区日韩 | 欧洲亚洲精品久久久久 | 性色av一区二区三区 | 成人午夜性a一级毛片免费看 | 成人午夜看片 | 亚洲精品一区二区网址 | 亚洲视频在线看 | 中文字幕免费在线 | 国产精品久久久久久久久久东京 | 蜜桃精品久久久久久久免费影院 | 国产男女爽爽爽免费视频 | 狠狠综合久久av一区二区老牛 | 韩日在线观看视频 | 国产精品毛片一区二区三区 | 欧美一级二级视频 | 午夜小电影 | 日本精品视频在线观看 | 免费午夜电影 | 激情欧美一区二区三区中文字幕 | 成人av免费观看 | 久草视频在线首页 | 蜜臀视频在线观看 | 夜夜av| 久在线视频 | 精品日韩| 国产精品久久一区 | 精品香蕉一区二区三区 | 91免费在线播放 | 久久久人成影片一区二区三区 | 成人在线h | av网站免费 | 欧美日韩一区在线观看 | 亚洲精品久久久久久久久久 | 亚洲欧美日韩国产综合 | 中文字幕综合在线 | 一区二区三区久久 | 精精国产xxxx视频在线 | 久久久久一区二区 | 亚洲影视一区 | 99中文字幕| 最近中文字幕在线视频1 | 在线视频 亚洲 | 日本在线观看 | 亚洲一区二区三区久久 | 精品久久久久一区二区国产 | 久久66 | 九九热在线观看 | 岛国av免费观看 | 不卡一二| 国产精品一码二码三码在线 | 日韩精品在线免费观看视频 | 伊人影视 | 国产一级毛片电影 | 久久在线| 97国产一区二区精品久久呦 | 欧美一区二区三区在线观看 | 国产精品视屏 | 欧美色视频在线观看 | 国产美女在线观看 | 91午夜在线| 中文字幕天堂在线 | 亚洲一区视频在线 | 九九热热九九 | 久久精品国产亚洲一区二区三区 | 国产视频自拍一区 | 久久无码精品一区二区三区 | 国产精品第一区 | 91av在线视频播放 | 免费av在线| 亚洲精品在线视频观看 | 九色在线播放 | 欧美午夜精品久久久久久浪潮 | 国产精品福利一区 | av一区二区三区四区 | 国产精品国产精品国产专区不片 | а√天堂资源中文最新版地址 | 日韩在线一区二区 | 视频在线一区二区三区 | 狠狠的干| 成人黄色电影小说 | 久久国语| 亚洲无吗天堂 | 午夜在线观看视频网站 | 日韩视频在线免费观看 | 亚洲成人精品av | 色婷婷一区二区三区四区 | 2019天天干夜夜操 | 国产日产精品一区二区三区四区 | 国产成人精品一区二区三区视频 | www.亚洲成人 | 精品国产91亚洲一区二区三区www | 精品久久久久久久人人人人传媒 | 欧美亚洲高清 | 日韩成人在线播放 | 国产福利一区二区 | 999这里只有是极品 免费的一级黄色片 | 精品国产一区二区三区在线观看 | 久久国产精品久久久久久 | 可以看av的网站 | 久久久国产一区二区三区 | 日韩福利视频网 | 成人在线视频免费观看 | 成人精品一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 午夜伦理影院 | 婷婷五月色综合 | 日韩精品免费在线观看 | 自拍偷拍第一页 | 亚洲一区二区在线播放 | 日韩 国产 在线 | 亚洲精品乱码久久久久久久 | 精品99久久 | 精品久久国产老人久久综合 | 一级h片| 国产精品一区在线看 | 欧洲成人午夜免费大片 | 91久久久久 | 国产精品久久婷婷六月丁香 | 国产视频一区二区在线观看 | 91精品国产综合久久福利 | 精品国产一级片 | 精品久久国产 | 亚洲精品一区久久久久久 | 伊人久久艹 | 日韩免费视频 | 欧美成人精品一区二区三区在线看 | 色视频在线播放 | 成人免费看黄 | 欧美久久久久久 | 日韩成人在线视频 | 91精品国产92 | 亚洲看片网站 | 国产在线观看免费 | 中文字幕亚洲欧美日韩在线不卡 | 国产美女精品一区二区三区 | 天天曰天天曰 | 久久久综合视频 | 久久精品国产99国产 | 久久久久久久久99精品 | 色综合一区 | 三级黄色片在线观看 | 久久久国产一区 | 久久久久久久久久久久久九 | 成人在线国产 | 精品免费| 亚洲欧美另类久久久精品2019 | 香蕉视频成人在线观看 | 免费在线观看一级毛片 | 国产精品一区二区av | 国产综合区 | 男女黄色免费网站 | 蜜桃av一区二区三区 | 久久精品国产99国产精品 | 国产免费自拍视频 | 日韩精品一区二区三区在线观看 | 亚洲啊v| 国产毛片毛片 | 中文字幕91 | 欧美日韩国产一区二区在线观看 | 久久69精品久久久久久久电影好 | 国产一区久久久 | 国产成人av一区二区三区 | 越南性xxxx精品hd | 国产精品毛片久久久久久久 | 国产精品极品美女在线观看免费 | 国产一区二区精品丝袜 | 国产精品成人久久久久 | 国产一级片a | 羞羞视频网站在线免费观看 | 日韩在线视频观看 | 91精品久久久久久 | 久久成人精品视频 | 色天天综合网 | 鲁一鲁综合 | 大乳videos巨大吃奶 | 性色av一区二区三区 | 国产成人av网站 | 久久久www成人免费精品 | 日韩视频在线免费观看 | 亚洲国产精品久久久久婷婷老年 | 日本高清视频一区二区三区 | 亚洲91| 欧美啪啪一区二区 | 女人毛片a毛片久久人人 | 国产日韩欧美综合 | 天天干天天搞天天射 | 91视频免费观看 | 亚洲国产高清在线 | 免费大片在线观看网站 | 成人免费xxxxx在线视频软件 | 99久久99久久精品 | 91福利视频导航 | 国产不卡免费 | 亚洲免费网站 | 久久久久久午夜 | 一区二区三区视频免费在线观看 | 91精品国产欧美一区二区成人 | 欧美日本韩国一区二区 | 国产成人精品一区二区三区视频 | 色欧美片视频在线观看 | 国产精品美女久久久久久久久久久 | 国产精品夜间视频香蕉 | 一区二区精品在线 | 91中文在线观看 | 日韩精品久久久久久 | 日韩精品一区二区三区第95 | 成人午夜剧场 | a级在线免费视频 | 欧美一级艳片视频免费观看 | 免费看国产片在线观看 | 国产在线激情 | 日韩色区| 欧美精品一区久久 | 日韩精品一区二区三区在线播放 | 狠狠的日 | 久久久99精品免费观看 | 亚洲夜幕久久日韩精品一区 | 色综合激情 | 国产高清在线观看 | 成人亚洲黄色 | 国产三级黄色毛片 | 国产精品三级久久久久久电影 | 亚洲97视频 | 在线成人av| 国产欧美一区二区三区国产幕精品 | 艳妇荡乳豪妇荡淫 | 一区二区三区 在线 | 免费在线亚洲 | 狠狠色狠狠色合久久伊人 | 天天天干天天射天天天操 | 精品久久久久久国产 | 午夜a级理论片915影院 | 精品成人免费一区二区在线播放 | 九一精品国产 | 成人精品 | 亚洲男人的天堂在线播放 | 久草网在线视频 | 欧美激情一区二区三区 | 欧美成人精品一区二区三区在线看 | 成人在线视频一区 | 国产精品久久久久久一区二区三区 | 91精品国产综合久久久久久 | 理论片87福利理论电影 | 天天射欧美 | 成人一级电影在线观看 | 禁果av一区二区三区 | 久久免费视频在线 | 国产精品久久久久久久久久三级 | 午夜午夜精品一区二区三区文 | 亚洲欧洲综合 | 黄色三级网站 | 午夜影院操 | 毛片视频播放 | 国产精品久久久久久久久久东京 | 羞羞视频在线免费观看 | 国产乱码精品一区二区三区忘忧草 | 在线观看a视频 | 天天澡天天狠天天天做 | 欧美在线一区二区 | 国产一区 | 久久国产精品无码网站 | 久久亚洲一区 | 91麻豆精品国产91久久久久久久久 | 国产第99页 | 欧美精品在线免费观看 | 日韩欧美在线观看一区 | 一区二区亚洲 | 琪琪午夜伦伦电影福利片 | 婷婷久久五月天 | 日韩蜜桃| 成人欧美一区二区三区在线播放 | 精品九九久久 | www久久99 | 伊人啪啪 | 成人精品久久久 | 亚洲成人日韩 | 伊人久久婷婷 | 日本精品在线 | 极品久久 | 国内精品成人 | 欧美色视频在线观看 | 日韩在线视频中文字幕 | 精品综合久久 | 成人免费视频网站在线观看 | 偷拍电影一区二区三区 | 高清av网站 | 一级一级毛片 | 成人免费crm一区二区 | 麻豆久久 | 免费一区二区 | 伊人网站 | 欧美日韩高清一区 | 精品免费一区 | 天天摸天天操 | 色小妹一二三区 | 北条麻妃一区二区免费播放 | 91视频网址 | 91欧美激情一区二区三区成人 | 日本精品在线 | 一区二区三区久久久久久 | 欧美一区二区三区精品免费 | 欧美精品成人一区二区在线 | 欧美一区二区三区精品免费 | 一区电影| 国产欧美在线一区二区 | 一区二区精品视频 | 午夜精品久久久久久久白皮肤 | 久久久久久综合 | 国产二区视频 | 亚洲视频一区二区三区四区 | 在线免费黄色 | 久久高潮 | 日韩中文字幕无码一区二区三区 | 99看片 | 国产一区二区三区91 | 欧美日韩在线第一页 | 91久久精品一区二区别 | 久久久久亚洲美女啪啪 | 天堂伊人网 | 中文字幕亚洲一区二区三区 | 美女久久久久 | 四虎影院免费看 | 亚洲aⅴ| 亚洲国产成人精品久久 | 国产精品久久久久久久久久新婚 | 久久精品日| 日韩午夜电影在线观看 | 精品成人av | 国产精品456在线影视 | 日韩在线大片 | 成人小视频在线播放 | 国产精品成人3p一区二区三区 | 国产精品乱码久久 | 亚洲高清视频网站 | 欧美久久一级特黄毛片 | 亚洲天堂免费 | 免费av大全| 欧美福利电影在线观看 | 性色av一区二区三区免费看开蚌 | 精久久| 亚洲成人一区二区三区 | 国产一级特黄aaa | 欧美电影一区 | julia中文字幕久久一区二区 | 激情久久久 | 日本三级国产 | 欧美色阁 | 天天插天天干 |