精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

NPOI操作Excel之三解析Excel

開(kāi)發(fā) 前端
通過(guò)前面兩篇的基礎(chǔ)學(xué)習(xí),我們對(duì)NPOI有了一定了了解,下面就開(kāi)始進(jìn)入實(shí)戰(zhàn),解析下面格式的Excel(下面只是列舉了幾個(gè)例子),并保存入庫(kù)。

[[380425]]

通過(guò)前面兩篇的基礎(chǔ)學(xué)習(xí),我們對(duì)NPOI有了一定了了解,下面就開(kāi)始進(jìn)入實(shí)戰(zhàn),解析下面格式的Excel(下面只是列舉了幾個(gè)例子),并保存入庫(kù)

首先我們先分析一下,要解析這樣的Excel,需要把指標(biāo)【橘色背景和藍(lán)色背景】(作為指標(biāo)入庫(kù))、科目【棕色背景和黃色背景】(作為X軸入庫(kù))、數(shù)據(jù)【乳白色背景和白色背景】(作為Y軸入庫(kù))的數(shù)據(jù)分開(kāi)入庫(kù)。

第一張圖我們得到的指標(biāo)毫無(wú)疑問(wèn)應(yīng)該是第三行從第二列開(kāi)始到最后一列的數(shù)據(jù),而第二張圖我們得到的指標(biāo)應(yīng)該是非金融企業(yè)部門(mén)-使用、非金融企業(yè)部門(mén)-來(lái)源、金融機(jī)構(gòu)部門(mén)-使用、金融機(jī)構(gòu)部門(mén)-來(lái)源,以此類(lèi)推,我們要想取到這樣的數(shù)據(jù),首先需要把合并行的單元格填充、然后把合并列的數(shù)據(jù)合并,我們可以通過(guò)二維數(shù)組來(lái)實(shí)實(shí)現(xiàn)。

由于每個(gè)Excel的格式不一樣,指標(biāo)數(shù)據(jù)的行數(shù),列數(shù)也不一樣,所以我們要想把數(shù)據(jù)區(qū)分開(kāi)只能通過(guò)背景顏色,把三部分是數(shù)據(jù)分開(kāi)并放到三個(gè)二維數(shù)組里,然后解析入庫(kù),由于Excel的背景顏色存在不一樣,所以不能寫(xiě)死,通過(guò)觀察我們可以發(fā)現(xiàn),每個(gè)Excel都是從指標(biāo)行開(kāi)始有背景顏色到數(shù)據(jù)行開(kāi)始變背景顏色,這樣我們就可以區(qū)分開(kāi)來(lái),到這里相信聰明的你已經(jīng)知道怎么做了,下面我們就開(kāi)始實(shí)現(xiàn)吧

1、獲取Excel的擴(kuò)展名并創(chuàng)建工作簿,如果是xls創(chuàng)建HSSFWorkbook工作簿,如果是xlxs創(chuàng)建XSSFWorkbook工作簿

  1. public static void ReadFromExcelFile(string filePath) 
  2.     IWorkbook wk = null
  3.     string extension = System.IO.Path.GetExtension(filePath);//GetExtension獲取Excel的擴(kuò)展名 
  4.     try 
  5.     { 
  6.        FileStream fs = File.OpenRead(filePath); 
  7.        if (extension.Equals(".xls")) 
  8.        {                    
  9.            wk = new HSSFWorkbook(fs); //把xls文件中的數(shù)據(jù)寫(xiě)入wk中 
  10.        } 
  11.        else 
  12.        {                     
  13.            wk = new XSSFWorkbook(fs);//把xlsx文件中的數(shù)據(jù)寫(xiě)入wk中 
  14.        } 
  15.        fs.Close();                 
  16.        sheet = wk.GetSheetAt(0);//讀取當(dāng)前表數(shù)據(jù)   20            GetIndexRow();//獲取【指標(biāo)、科目、數(shù)據(jù)】的行數(shù)列數(shù) 
  17.        ReadData();//讀數(shù)據(jù)并保存到數(shù)組中 
  18.        SaveData();//解析數(shù)組數(shù)據(jù)并保存入庫(kù) 
  19.     } 
  20.     catch (Exception e) 
  21.     {                
  22.        Console.WriteLine(e.Message); //只在Debug模式下才輸出 
  23.     } 

2、獲取指標(biāo)從哪行開(kāi)始

 

  1. for (int i = 0; i < sheet.LastRowNum; i++)//sheet.LastRowNum當(dāng)前表的行數(shù) 
  2.    IRow row = sheet.GetRow(i);  //讀取當(dāng)前行數(shù)據(jù) 
  3.    if (row != null
  4.    { 
  5.       if (row.GetCell(0) != null)  //讀取該行的第1列數(shù)據(jù) 
  6.       { 
  7.         ICellStyle style = row.GetCell(0).CellStyle;//當(dāng)前行第一列的樣式 
  8.         row.GetCell(0).SetCellType(CellType.String);//把第一行第一列的值類(lèi)型轉(zhuǎn)換成string類(lèi)型 
  9.         short GroundColor = style.FillForegroundColor;//獲取當(dāng)前行第一列的背景色 
  10.         if (i == 0)//若或i=0說(shuō)明是第一行,沒(méi)有背景色的 
  11.         { 
  12.            Title = row.GetCell(0).StringCellValue;//獲取第一行第一列的值即標(biāo)題的值 
  13.            TitleColor = GroundColor;//第一行第一列背景色的值付給TitleColor 
  14.            continue
  15.         } 
  16.         else//如果不是第一行 
  17.         { 
  18.            if (GroundColor == TitleColor) 
  19.            { 
  20.               if (row.GetCell(0).StringCellValue.Contains("單位")) 
  21.               { 
  22.                  IndexUnit = row.GetCell(0).StringCellValue.Replace("單位:""").Replace("單位:"""); 
  23.                  continue
  24.                } 
  25.            } 
  26.            else if (GroundColor != TitleColor && IndexColor == 0)//如果GroundColor不等于TitleColor說(shuō)明改行是指標(biāo)行 
  27.            { 
  28.                IndexColor = GroundColor;// 把GroundColor的值賦值給IndexColor 
  29.                IndexStart = i;//記錄改行,改行是指標(biāo)行的起始行 
  30.                break; 
  31.            } 
  32.        } 
  33.    } 
  34.  } 
  35.      

3、獲取指標(biāo)從哪行結(jié)束

  1. for (int i = IndexStart + 1; i < sheet.LastRowNum; i++) 
  2.  { 
  3.      IRow row = sheet.GetRow(i);  //讀取當(dāng)前行數(shù)據(jù) 
  4.       if (row != null
  5.       { 
  6.            if (row.GetCell(0) != null)  //讀取該行的第1列數(shù)據(jù) 
  7.            { 
  8.                 ICellStyle style = row.GetCell(0).CellStyle; 
  9.                 short GroundColor = style.FillForegroundColor; 
  10.                 if (IndexColor != GroundColor) 
  11.                 { 
  12.                       LeftDataColor = GroundColor; 
  13.                       IndexEnd = i - 1; 
  14.                       break; 
  15.                 } 
  16.             } 
  17.        } 
  18.  } 

4、獲取數(shù)據(jù)從哪行開(kāi)始到哪行結(jié)束

  1. for (int i = IndexEnd + 1; i < sheet.LastRowNum; i++) 
  2.  { 
  3.       DataRowStart = IndexEnd + 1;//數(shù)據(jù)開(kāi)始行 
  4.       IRow row = sheet.GetRow(i);  //讀取當(dāng)前行數(shù)據(jù) 
  5.       if (row != null
  6.       { 
  7.            if (row.GetCell(0) != null)  //讀取該行的第1列數(shù)據(jù) 
  8.            { 
  9.                  ICellStyle style = row.GetCell(0).CellStyle; 
  10.                  short GroundColor = style.FillForegroundColor; 
  11.                  if (LeftDataColor != GroundColor) 
  12.                  { 
  13.                        DataRowEnd = i - 1;//數(shù)據(jù)結(jié)束行 
  14.                        break; 
  15.                   } 
  16.             } 
  17.       } 
  18.  } 

5、獲取科目【左側(cè)】的列數(shù)

  1. if (sheet.GetRow(IndexEnd + 1) != null
  2.        for (int i = 0; i < sheet.GetRow(IndexEnd + 1).LastCellNum; i++) 
  3.         { 
  4.               if (sheet.GetRow(IndexEnd + 1).GetCell(i) != null
  5.                { 
  6.                      ICellStyle style = sheet.GetRow(IndexEnd + 1).GetCell(i).CellStyle; 
  7.                       short GroundColor = style.FillForegroundColor; 
  8.                       sheet.GetRow(IndexEnd + 1).GetCell(i).SetCellType(CellType.String); 
  9.                        if (GroundColor != LeftDataColor) 
  10.                         { 
  11.                             DataLeftCell = i;//科目的列數(shù) 
  12.                             break; 
  13.                         } 
  14.                  }  
  15.            } 

6、把數(shù)據(jù)保存到數(shù)組中【指標(biāo)數(shù)組】

  1. string[,] IndexArray = new string[IndexEnd-IndexStart+1, sheet.GetRow(0).LastCellNum - DataLeftCell];//指標(biāo) 
  2.  
  3.  4  //循環(huán)指標(biāo)行 
  4. for (int r = IndexStart; r <= IndexEnd; r++) 
  5.    IRow row = sheet.GetRow(r);  //讀取當(dāng)前行數(shù)據(jù) 
  6.    if (row != null
  7.    { 
  8.       for (int c = DataLeftCell; c <= row.LastCellNum - DataLeftCell; c++) 
  9.       { 
  10.           if (row.GetCell(c) != null
  11.           { 
  12.               row.GetCell(c).SetCellType(CellType.String); 
  13.               #region 判斷是否是合并單元格 
  14.               if (string.IsNullOrEmpty(row.GetCell(c).StringCellValue)) 
  15.               { 
  16.                    ICell cell = row.GetCell(c); 
  17.                    Dimension dimension = new Dimension(); 
  18.                    if (IsMergedRegions.IsMergeCell(cell, out dimension))//如果是空判斷是否是合并單元格 
  19.                    { 
  20.                         IndexArray[r - IndexStart, c- DataLeftCell] = dimension.DataCell.StringCellValue;//如果是取合并單元格的值 
  21.                    } 
  22.                    else 
  23.                    { 
  24.                         IndexArray[r - IndexStart, c- DataLeftCell] = row.GetCell(c).StringCellValue;//否則取改單元格本身的值 
  25.                    } 
  26.               } 
  27.               else 
  28.               { 
  29.                    IndexArray[r - IndexStart, c- DataLeftCell] = row.GetCell(c).StringCellValue; 
  30.               } 
  31.               #endregion 
  32.           } 
  33.       } 
  34.    } 

7、把數(shù)據(jù)保存到數(shù)組中【科目數(shù)組】

  1. string[,]  LeftDataArray = new string[DataRowEnd-DataRowStart+1, DataLeftCell];//科目 
  2.   for (int r = DataRowStart; r <= DataRowEnd; r++) 
  3.              { 
  4.                  IRow row = sheet.GetRow(r);  //讀取當(dāng)前行數(shù)據(jù) 
  5.                  if (row != null
  6.                  { 
  7.                      for (int c = 0; c < DataLeftCell; c++) 
  8.                      { 
  9.                          if (row.GetCell(c) != null
  10.                          { 
  11.                              row.GetCell(c).SetCellType(CellType.String); 
  12.   
  13.                              #region 判斷是否是合并單元格 
  14.                              if (string.IsNullOrEmpty(row.GetCell(c).StringCellValue)) 
  15.                              { 
  16.                                  ICell cell = row.GetCell(c); 
  17.                                  Dimension dimension = new Dimension(); 
  18.                                  if (IsMergedRegions.IsMergeCell(cell, out dimension)) 
  19.                                  { 
  20.                                      LeftDataArray[r - DataRowStart, c] = dimension.DataCell.StringCellValue; 
  21.                                  } 
  22.                                  else 
  23.                                  { 
  24.                                      LeftDataArray[r - DataRowStart, c] = row.GetCell(c).StringCellValue; 
  25.                                  } 
  26.                              } 
  27.                              else 
  28.                              { 
  29.                                  LeftDataArray[r - DataRowStart, c] = row.GetCell(c).StringCellValue; 
  30.                              } 
  31.                              #endregion 
  32.                          } 
  33.                      } 
  34.                  } 
  35.              } 

8、把數(shù)據(jù)保存到數(shù)組中【數(shù)據(jù)數(shù)組】

  1. string[,]  RightDataArray= new string[DataRowEnd - DataRowStart + 1, sheet.GetRow(0).LastCellNum - DataLeftCell];//數(shù)據(jù) 
  2.   for (int r = DataRowStart; r <= DataRowEnd; r++) 
  3.              { 
  4.                  IRow row = sheet.GetRow(r);  //讀取當(dāng)前行數(shù)據(jù) 
  5.                  if (row != null
  6.                  { 
  7.                      for (int c = DataLeftCell; c < row.LastCellNum; c++) 
  8.                      { 
  9.                          if (row.GetCell(c) != null
  10.                          { 
  11.                              row.GetCell(c).SetCellType(CellType.String); 
  12.                              RightDataArray[r - DataRowStart, c- DataLeftCell] = row.GetCell(c).StringCellValue; 
  13.                          } 
  14.                      } 
  15.                  } 
  16.              } 

9、解析數(shù)組保存數(shù)據(jù)

  1. private static void SaveData() 
  2.       //IndexModel im = new IndexModel(); 
  3.       DataModel dm = new DataModel(); 
  4.       for (int ic = 0; ic < sheet.GetRow(0).LastCellNum - DataLeftCell ; ic++)//循環(huán)指標(biāo)列 
  5.       { 
  6.          dm.IndexName = null
  7.          dm.IndexCode = IndexCode++.ToString().PadLeft(4, '0'); 
  8.          #region 獲取指標(biāo)名稱(chēng) 
  9.          for (int ir = 0; ir < IndexEnd - IndexStart + 1; ir++) 
  10.          { 
  11.              if (IndexArray[ir, ic] != null
  12.              { 
  13.                   if (dm.IndexName == null
  14.                   { 
  15.                       dm.IndexName = IndexArray[ir, ic];                         
  16.                   } 
  17.                   else 
  18.                   { 
  19.                       if (!dm.IndexName.Contains(IndexArray[ir, ic])) 
  20.                       { 
  21.                          dm.IndexName = dm.IndexName + "_" + IndexArray[ir, ic];//同一列字符串拼接 
  22.                       } 
  23.                   } 
  24.                } 
  25.           } 
  26.          #endregion 
  27.          //循環(huán)得右側(cè)數(shù)據(jù) 
  28.          for (int rr = 0; rr < DataRowEnd - DataRowStart + 1; rr++)//循環(huán)右側(cè)數(shù)據(jù)的行 
  29.          { 
  30.                #region 右側(cè)數(shù)據(jù) 
  31.                if (RightDataArray[rr, ic] != null
  32.                { 
  33.                    dm.IndexYValue = RightDataArray[rr, ic]; 
  34.                } 
  35.                #endregion 
  36.                dm.IndexXValue = null
  37.                //循環(huán)得左側(cè)數(shù)據(jù) 
  38.                for (int lc = 0; lc < DataLeftCell; lc++) 
  39.                { 
  40.                    if (LeftDataArray[rr, lc] !=null
  41.                    { 
  42.                         if (dm.IndexXValue == null
  43.                         { 
  44.                              dm.IndexXValue = LeftDataArray[rr, lc]; 
  45.                         } 
  46.                         else 
  47.                         { 
  48.                              if (!dm.IndexXValue.Contains(LeftDataArray[rr, lc])) 
  49.                              { 
  50.                                  dm.IndexXValue = dm.IndexXValue + "_" + LeftDataArray[rr, lc]; 
  51.                              } 
  52.                          }                               
  53.                      } 
  54.                  } 
  55.            Console.WriteLine($"指標(biāo)名稱(chēng):{dm.IndexName} 指標(biāo)編碼:{dm.IndexCode} IndexXValue:{dm.IndexXValue} IndexYValue:{dm.IndexYValue}"); 
  56.          } 
  57.      } 

10、上面用到的方法IsMergeCell判斷是否是合并單元格

  1. /// <summary> 
  2. /// 判斷指定單元格是否為合并單元格,并且輸出該單元格的維度 
  3. /// </summary> 
  4. /// <param name="cell">單元格</param> 
  5. /// <param name="dimension">單元格維度</param> 
  6. /// <returns>返回是否為合并單元格的布爾(Boolean)值</returns
  7. public static bool IsMergeCell(this ICell cell, out Dimension dimension) 
  8.     return cell.Sheet.IsMergeCell(cell.RowIndex, cell.ColumnIndex, out dimension); 

https://www.cnblogs.com/zqyw/category/1070314.html

本文轉(zhuǎn)載自微信公眾號(hào)「CSharp編程大全」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系CSharp編程大全公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: CSharp編程大全
相關(guān)推薦

2021-02-02 07:47:36

NPOI基礎(chǔ)Excel

2021-02-03 10:31:10

NPOIExcel樣式

2012-08-03 10:20:06

ASP.NET

2021-12-01 07:19:44

C# Npoi Excel

2009-08-18 16:14:05

C# 操作Excel

2009-08-18 16:20:09

C# 操作Excel

2009-09-01 13:59:01

C#操作Excel

2009-08-18 15:49:19

C# 操作Excel

2009-09-01 14:08:58

C#操作Excel

2023-11-02 08:01:50

NPOI開(kāi)源

2011-07-13 14:02:42

OracleExcel

2009-08-25 16:49:28

.NET Excel

2009-08-18 13:49:21

C# 操作Excel

2023-04-09 15:26:02

PythonPandasopenpyxl

2011-06-23 11:16:39

Qt Excel

2011-06-27 10:35:21

Excel

2009-08-18 16:04:12

C# 操作Excel

2009-11-02 10:42:04

VB.NET EXCE

2020-08-10 15:35:14

Excel函數(shù)數(shù)據(jù)

2009-08-18 14:36:36

C# 操作Excel
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产黄色激情视频| 国产在线观看91精品一区| 成人区人妻精品一区二| 第84页国产精品| 国产精品视频观看| 99re资源| 波多野结衣影片| 亚洲区综合中文字幕日日| 亚洲精品456在线播放狼人| 毛葺葺老太做受视频| 国产淫片在线观看| 91性感美女视频| 国产有码一区二区| 日韩av无码中文字幕| 欧美xxav| 日韩精品中文字幕在线| 欧洲在线免费视频| 欧美人与性动交xxⅹxx| 一区二区三区丝袜| 日韩久久在线| 天天综合永久入口| 老司机精品视频一区二区三区| 欧美黄色性视频| 日韩免费成人av| 欧美18免费视频| 日韩一区二区三区在线观看| 免费男同深夜夜行网站| 搞黄网站在线看| 成人欧美一区二区三区白人| 久久精品中文字幕一区二区三区 | 91丝袜美腿美女视频网站| 国产成人亚洲欧洲在线| 中文字幕一区二区三区乱码图片 | 亚洲国产97在线精品一区| 国产精品区在线| 巨茎人妖videos另类| 亚洲电影中文字幕在线观看| 亚洲欧美日韩另类精品一区二区三区 | wwwwxxxx在线观看| 亚洲激情一二三区| 中日韩在线视频| 成年人在线视频| 久久婷婷一区二区三区| 国产一区二区在线网站| 亚洲第一色网站| 国产麻豆成人传媒免费观看| 国产精品视频中文字幕91| 欧美超碰在线观看| 久久狠狠婷婷| 国产成人极品视频| 亚洲成人第一网站| 先锋影音久久| 日韩av观看网址| 高清乱码免费看污| 免费在线亚洲欧美| 欧美亚洲一级片| 久久青青草视频| 午夜亚洲影视| 国产精品www| 亚洲视频一区二区三区四区| 久久福利小视频| 欧美日韩电影免费看| 欧美日韩在线一区| 国产裸体免费无遮挡| 99re久久| 91麻豆精品国产91| 中文字幕亚洲日本| 国产精品视屏| 日韩精品在线播放| 免费观看av网站| av一区二区在线播放| 在线观看欧美成人| 国产又黄又粗又猛又爽的| 日韩精品一区二区三区免费观看| 中文字幕欧美日韩精品| 男人天堂资源网| 欧美一区二区| 韩剧1988免费观看全集| 久久久久久久久黄色| 久久精品国产999大香线蕉| 91精品免费视频| 开心激情综合网| 久久综合久久鬼色| 在线丝袜欧美日韩制服| 欧美xxxbbb| 色综合久久中文字幕综合网| av网站在线不卡| 亚洲精品一区二区三区在线| 亚洲国产精品小视频| 国产在线免费av| 国产精品地址| 国产精品视频大全| www.狠狠干| 国产亚洲美州欧州综合国| 99热这里只有精品7| 日韩在线伦理| 日韩网站在线看片你懂的| 波多野结衣先锋影音| 天天影视综合| 欧美一区三区三区高中清蜜桃| 在线观看黄色国产| 粉嫩欧美一区二区三区高清影视 | 日韩 国产 一区| 色爱av综合网| 欧美成人国产va精品日本一级| 精品国产乱码一区二区| 久久激情五月激情| 久久亚洲免费| 男人添女人下部高潮视频在线观看| 色婷婷综合久色| 国产亚洲精品成人a| 久久精品不卡| 日本成人在线视频网址| 超碰免费在线97| 中文字幕一区在线观看视频| 亚洲中文字幕无码专区| 一区三区自拍| 久久精品国产欧美亚洲人人爽| 一卡二卡3卡四卡高清精品视频| 亚洲一二三精品| 激情久久综合| 亚洲综合精品一区二区| 国产精品久久一区二区三区不卡| 亚洲一区在线电影| 亚洲色图欧美自拍| 精品一区av| 欧美孕妇与黑人孕交| 可以免费看毛片的网站| 亚洲免费在线电影| 精品亚洲视频在线| 欧美日韩中字| 国产精品88a∨| 日本精品999| 亚洲一区二区三区在线看| 午夜激情影院在线观看| 日韩精品四区| 国产免费一区二区三区在线能观看| 你懂得在线网址| 精品毛片三在线观看| 性高潮免费视频| 狠狠入ady亚洲精品经典电影| 51国偷自产一区二区三区| 尤物网在线观看| 欧美视频第二页| 后入内射无码人妻一区| 日本美女一区二区| 亚洲视频在线观看日本a| abab456成人免费网址| 一二美女精品欧洲| 中文文字幕一区二区三三| 国产午夜精品一区二区三区嫩草| 日本少妇高潮喷水视频| 老司机精品视频在线播放| 国模精品视频一区二区| 人妻无码中文字幕| 午夜av电影一区| 国产十八熟妇av成人一区| 日韩午夜av| 欧美精品久久久| 欧美日韩尤物久久| 最新国产成人av网站网址麻豆| 中文字幕日韩经典| 亚洲乱码日产精品bd| 最好看的中文字幕| 亚洲第一黄色| 欧美一区二区三区四区夜夜大片 | 国产精品夜色7777狼人| 一区二区高清不卡| 日韩写真欧美这视频| 久久久美女视频| 91香蕉视频mp4| 亚洲天堂网一区| 午夜激情一区| 九九九九精品九九九九| 精品视频一区二区三区四区五区| 日韩在线播放av| 成人h动漫精品一区二区无码| 亚洲第一成人在线| 91精品人妻一区二区三区| 美女视频网站黄色亚洲| 嫩草影院中文字幕| 夜色77av精品影院| 国产日韩欧美日韩| bl在线肉h视频大尺度| 尤物yw午夜国产精品视频| 国产又大又粗又硬| 黄色一区二区在线| www中文在线| 成人国产亚洲欧美成人综合网| chinese少妇国语对白| 一区二区国产在线| 欧美人xxxxx| 日韩一区二区三区精品视频第3页| 91地址最新发布| 久久亚洲天堂| 国产视频精品自拍| 国产三级视频在线播放| 欧美视频第一页| 精品国产视频在线观看| 91啪九色porn原创视频在线观看| 天天干天天av| 免费久久99精品国产自在现线| 亚洲自拍偷拍一区二区三区| 色吊丝一区二区| 96sao精品视频在线观看| 二区三区不卡| 久久久亚洲国产| 99热国产在线| 日韩一区视频在线| 邻家有女韩剧在线观看国语| 日韩欧美电影一二三| 中文资源在线播放| 精品久久久久久久久久久| 2021亚洲天堂| 国产精品成人一区二区三区夜夜夜| www.88av| 成人精品一区二区三区四区| 黄色小视频免费网站| 久久精品男女| 奇米精品一区二区三区| 欧美日韩三级| 欧美日韩亚洲国产成人| 成人中文视频| 欧美在线播放一区| 蜜臀av免费一区二区三区| 精品一卡二卡三卡四卡日本乱码 | 欧美日韩在线高清| 激情av综合| 国产精品v欧美精品v日韩精品| 天天综合在线观看| 国产精品入口尤物| 欧美日韩激情电影| 国产精品av在线播放| 中老年在线免费视频| 久久久久久国产免费| 日本性爱视频在线观看| 欧美日本亚洲视频| 色av手机在线| 欧美激情手机在线视频 | 日韩国产一区二区| 视频一区二区在线观看| 精品久久久久久久| 日本一区二区三区四区在线观看 | 久久亚洲天堂网| 午夜精品久久久| 国产成人无码精品| 精品国产精品自拍| 高清乱码免费看污| 欧美亚洲日本国产| 97精品人妻一区二区三区在线| 欧美日韩成人激情| 99久久婷婷国产一区二区三区| 制服丝袜激情欧洲亚洲| 国产探花精品一区二区| 日韩西西人体444www| 国产77777| 日韩美女av在线| 超碰国产在线| y97精品国产97久久久久久| 看黄网站在线| 欧美激情va永久在线播放| av不卡高清| 日本一本a高清免费不卡| 成人啊v在线| 91久久精品美女| 成人性生交大片免费看96| 久久精品日产第一区二区三区精品版| 蜜臀久久99精品久久一区二区| 视频一区二区综合| 综合久久一区| 日韩精品―中文字幕| 日本中文字幕一区二区有限公司| 午夜精品久久久久久久99热影院| 国产ts人妖一区二区| 人妻无码一区二区三区| 中文字幕欧美激情| 538精品在线视频| 精品久久久久久久久中文字幕| 久草热在线观看| 日韩欧美视频在线| 欧美理论在线观看| 久久久精品网站| 黄色视屏在线免费观看| 国产欧美va欧美va香蕉在| 亚洲日本va中文字幕| 奇米888一区二区三区| 欧美在线免费| www.日日操| 成人激情午夜影院| 一区二区三区在线播放视频| 亚洲综合免费观看高清在线观看 | 日韩欧美电影一二三| 日韩亚洲视频在线观看| 久久精品中文字幕| 伊伊综合在线| 96pao国产成视频永久免费| 视频精品在线观看| 91视频 - 88av| 日韩电影在线免费| 在线观看免费视频国产| 中文字幕一区二区在线播放| 91美女免费看| 日韩欧美一级二级| 日韩在线资源| 欧美综合一区第一页| 日韩三级网址| 在线观看欧美一区| 爽好久久久欧美精品| 国产高潮失禁喷水爽到抽搐| 国产精品久久久久久户外露出 | 国产一区免费在线观看| 天天综合网网欲色| 人人爽人人av| 91免费观看视频在线| 国产极品国产极品| 欧美午夜一区二区| 你懂的视频在线观看| 久久久天堂国产精品女人| 精品国产亚洲一区二区三区大结局 | 久热精品视频在线观看一区| 日韩电影免费观| 精品乱子伦一区二区三区| 欧美精品一卡| 黄色片免费网址| 国产精品白丝在线| 中文字幕+乱码+中文乱码www | 超碰caoporn久久| 国产精品女人网站| 狠狠做深爱婷婷综合一区| 1024av视频| 国产91在线|亚洲| 九九热视频在线免费观看| 欧美在线你懂得| 成人在线免费公开观看视频| 琪琪第一精品导航| 猛男gaygay欧美视频| 久久婷婷国产精品| 9色porny自拍视频一区二区| 久久免费小视频| 日韩免费一区二区| 手机av在线播放| 亚洲综合视频1区| 综合激情一区| aaa黄色大片| 亚洲成人自拍一区| 黄色www视频| 亚州国产精品久久久| 欧美韩一区二区| 六月丁香婷婷激情| 久久中文字幕电影| 无码人妻精品一区二区蜜桃色欲| 亚洲视频第一页| 久久av影院| 五月天男人天堂| 国产一区二区三区在线观看免费视频 | 日韩一区二区三区不卡视频| 国产精品久久久久久妇女6080 | 亚洲精品国产品国语在线 | 国产有码一区二区| 亚洲国产一区二区三区在线播放| www.日本久久| 亚洲一区二区三区四区的| 色哟哟国产精品色哟哟| 欧美在线国产精品| 成人久久久久| 亚洲天堂伊人网| 亚洲h动漫在线| 九一在线视频| 91精品啪aⅴ在线观看国产| 国产精品99一区二区| 北岛玲一区二区| 欧美日韩精品一区视频| 欧美人与禽性xxxxx杂性| 精品蜜桃一区二区三区| 日韩综合小视频| 免费成年人视频在线观看| 精品日韩在线观看| 粉嫩一区二区| 亚洲小说欧美另类激情| 粉嫩aⅴ一区二区三区四区| 久久久久99精品成人片三人毛片| 中文字幕欧美日韩在线| 亚洲国产一区二区三区网站| 午夜精品久久久久久久无码| 国产精品天天摸av网| 亚洲h视频在线观看| 日韩美女视频免费在线观看| 国产精品毛片一区二区在线看| 人妻换人妻a片爽麻豆| 欧美色倩网站大全免费| 在线heyzo| 日本精品一区二区| 高清av一区二区| 国产在线观看第一页| 欧美精品久久久久久久久| 欧美日韩色图| 国产香蕉精品视频| 欧美日本国产一区| 亚洲精品国产精品国产| 成人一区二区av|