午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Java中使用JCOM操作Office對象

Java中使用JCOM操作Office對象

熱門標(biāo)簽:淮南騰訊地圖標(biāo)注 商丘百應(yīng)電話機(jī)器人有沒有效果 漯河辦理400電話 電話機(jī)器人的特色和創(chuàng)新 怎樣把地圖標(biāo)注出來 黃石智能營銷電銷機(jī)器人效果 騰訊地圖標(biāo)注商戶改名注冊入駐 開封便宜外呼系統(tǒng)報價 地圖標(biāo)注人員兼職

  通過使用COM技術(shù),我們用微軟Office應(yīng)用程序能夠建立很多應(yīng)用程序擴(kuò)展,但是Java開發(fā)人員卻無法享受它帶來的便利--除非他們擁有方便的Java訪問COM的途徑(Java-to-COM橋)。使用JCom的時候,你可以在Java中控制幾乎所有的COM對象,而且它還帶有一些用于Excel的強(qiáng)大的輔助類。

  在你每次編寫用HTML表格樣式或Java表格對象顯示數(shù)據(jù)的應(yīng)用程序的時候,通常都需要帶有"導(dǎo)出到Excel"功能。那么頭疼的問題就出現(xiàn)了。怎么樣實現(xiàn)這種功能呢?在HTML中顯示的可以在Office 2003中處理嗎?沒有這么好!你還必須支持Office 97!

  你只能去找一個符合當(dāng)前需求的工具了,但是接著收到更多的要求了。"這能在Word中做到嗎?Powerpoint能做到嗎?能不能用調(diào)制解調(diào)器撥號到遠(yuǎn)程服務(wù)器上并發(fā)布數(shù)據(jù)?Java無法實現(xiàn)這些功能是什么意思?。縅ava可以實現(xiàn)任何功能。"

  感謝作為Java和COM橋梁的框架組件,它使你在遇到這些情況的時候都可以回答"Yes"。Java-COM橋梁使你能夠根據(jù)自己的需要操作Windows組件--以前這是VB、C++和.NET開發(fā)人員的領(lǐng)地。你通過實現(xiàn)一個與DCOM后端(back end)對話的Java前端(front end),可以遠(yuǎn)離端對端(end-to-end)的COM系統(tǒng)。在本文的末尾,你可以使用其中一個Java-to-COM橋:它可以被命名為JCom。

  Excel基礎(chǔ)知識

  開始之前,你需要首先從Sourceforge網(wǎng)站下載API。它包含了JCom所使用的Java類的所有源代碼、C++代碼和JCom用于配置Java和COM的編譯好的DLL。把這個DLL放到你的Java主目錄的/bin/目錄下面,否則會出現(xiàn)問題。同時,為了不出現(xiàn)問題,還要正確地設(shè)置JAVA_HOME環(huán)境變量。JCom的大多數(shù)文檔目前都是用日語寫的,但是翻譯工作正在進(jìn)行中,因此以后會有些改進(jìn)的。

  下載和安裝過程完成以后,用列表1中的代碼試一試。這段代碼會建立到Excel的JCom接口,并把"Hello World"寫入第一個單元格中。你可以看到如圖1所示的結(jié)果。盡管JCom是一個通用的COM類庫,但是還是帶有很多用于Excel的輔助類,這是因為Excel可能是最常用的自動化COM應(yīng)用程序。這些輔助類可以為我們節(jié)省很多時間,它們使JCOM成為一個更好的類庫了。

  列表1:開始使用JCOM和Excel

  import jp.ne.so_net.ga2.no_ji.jcom.excel8.*;
  import jp.ne.so_net.ga2.no_ji.jcom.*;

  public class testSimple
  {
  public static void main(String[] args) throws Exception {
  ReleaseManager rm = new ReleaseManager();
  try {
  System.out.println("EXCEL is Starting...");
  ExcelApplication excel = new ExcelApplication(rm);
  excel.Visible(true);
  ExcelWorkbooks xlBooks = excel.Workbooks();
  ExcelWorkbook xlBook = xlBooks.Add();
  ExcelWorksheets xlSheets = xlBook.Worksheets();
  ExcelWorksheet xlSheet = xlSheets.Item(1);
  ExcelRange xlRange = xlSheet.Cells();
  xlRange.Item(1,1).Value("Hello, World!" );
  }
  catch(Exception e) { e.printStackTrace(); }
  finally { rm.release(); }
  }
  }



  圖1:Java中使用Excel的第一個COM自動化

  如果曾經(jīng)使用VB或VBA來自動化Excel,那么你應(yīng)該很熟悉列表1中的代碼了。ExcelApplication類暴露了Workbooks()屬性,它列舉出Excel中當(dāng)前打開的工作?。╳orkbook),并允許你向運(yùn)行的Excel副本增加或刪除工作薄。使用.Add()方法增加工作薄,這個方法會返回一個工作薄的引用。

  在Excel中工作薄用于保存輸入的數(shù)據(jù)。工作薄是XLS文件的基礎(chǔ)。一個工作薄由多個工作表(worksheet,在圖1中有三個工作表,分別叫做Sheet1、Sheet2和Sheet3)。工作表通過Item屬性來枚舉。你可以使用這個屬性訪問特定的工作表。在圖1中,Sheet 1是第一個工作表,因此你可以使用xlSheets.Item(1)來獲取對它的引用。

  有了工作表之后,你就可以使用range(范圍)來操作它上面的數(shù)據(jù)。Range是一個單元格或多個單元格。例如,單元格A1可以使用range (1,1)來引用,接著可以使用Value屬性把數(shù)據(jù)載入單元格中。

   更有意義的例子

  假設(shè)你希望把Excel作為數(shù)據(jù)庫中某些數(shù)據(jù)的表現(xiàn)層。在Java中你希望通過JDBC獲取數(shù)據(jù),并把數(shù)據(jù)顯示在Excel前端。這種假設(shè)是很好的,因為復(fù)雜業(yè)務(wù)邏輯中的用例(use case)已經(jīng)用Excel前端顯示了,更不用說工作流中的其它的數(shù)據(jù)項的顯示和交互操作了?,F(xiàn)在你不需要了解業(yè)務(wù)邏輯或分析,就可以使用原始的電子表格,并使用Java中的自動化來"填充它們之間的裂痕"。

  我將給出一個演示這種操作的簡單示例:本文下載中所包含的內(nèi)容是建立比較銷售行為的一個簡單的MySQL數(shù)據(jù)庫的。它有三個表:

  · Sales是銷售的細(xì)節(jié)信息,包括銷售項、數(shù)量、銷售價格、是誰銷售的以及銷售地區(qū)。

  · People包含銷售人員的姓名和傭金。

  · Districts包含了銷售地區(qū)的名稱和稅率。

  生成報表的時候,你需要使用下面的業(yè)務(wù)邏輯來算出真正的數(shù)值:

  · 毛銷售額等于銷售項乘以銷售價格加上地稅金額。

  · 純銷售額等于毛銷售額減去銷售人員提取的稅前傭金。

  這都是一些在Java中可以實現(xiàn)的簡單直接的計算過程,但是我在本文中使用它們的目的是演示如何把這些數(shù)據(jù)寫入Excel電子表格并讓Excel自動計算。對于更復(fù)雜的情況(使用了更復(fù)雜的Excel公式),原理也是一樣的。

  此外,下載的內(nèi)容中還包含了如圖2所示的電子表格。它是作為"模板"供你填充適當(dāng)?shù)臄?shù)據(jù)的電子表格。



  圖2:用于前端填充數(shù)據(jù)的Excel模板

  使用JCOM的時候,查詢數(shù)據(jù)庫中所有銷售數(shù)據(jù)需要使用下面的SQL:

  SELECT sales.id, sales.description, sales.quantity, sales.price, districts.districtname,districts.salestax,people.name,people.commission
  FROM 'sales','districts','people'
  WHERE (sales.district = districts.id) AND (sales.salesperson = people.id)

   接著使用自動化(automation)把每條記錄都寫入Excel電子表格的適當(dāng)?shù)牧兄?。下載的內(nèi)容中包含了完整的代碼(列表2所示)。在下面的部分,我將為你解釋代碼中使用JCOM的自動化部分。

  列表2:從數(shù)據(jù)庫中獲取數(shù)據(jù)并載入Excel中的代碼

  // 首先建立Excel的引用
  ExcelApplication excel = new ExcelApplication(rm);
  // 使它可視
  excel.Visible(true);
  // 接著打開我們將使用的模板工作薄
  ExcelWorkbooks xlBooks = excel.Workbooks();
  ExcelWorkbook xlBook = xlBooks.Open("c:\sales.xls");
  // 接著獲取我們將修改的范圍的引用
  ExcelWorksheets xlSheets = xlBook.Worksheets();
  ExcelWorksheet xlSheet = xlSheets.Item(1);
  ExcelRange xlRange = xlSheet.Cells();

  …
  // 此處放置數(shù)據(jù)庫鏈接和查詢建立代碼
  …

  if (stmt.execute(strSql))
  {
  rs = stmt.getResultSet();
  }
  int nColCount = rs.getMetaData().getColumnCount();
  int nRow=1;
  int nCol=0;
  // 在記錄集中循環(huán)
  while(rs.next())
  {
  // 記錄集中的每行都是電子表格中的一行
  nRow++;
  for(int i=1;i=nColCount;i++)
  {
  // 匹配DB列和電子表格列
  nCol = getExcelColumn(i);
  // 查找于行和列對應(yīng)的單元格,并把它設(shè)置為適當(dāng)?shù)挠涗浖侄?
  xlRange.Item(nRow,nCol).Value(rs.getObject(i).toString());
  }
  // 填入公式
  xlRange.Item(nRow,7).Value("=RC[-2]*RC[-1]");
  xlRange.Item(nRow,9).Value("=RC[-2]*RC[-1]/100");
  xlRange.Item(nRow,10).Value("=RC[-3]+RC[-1]");
  xlRange.Item(nRow,11).Value("=RC[-4]*((100-RC[2])/100)");
  }


  在列表2的第一部分中,其目標(biāo)是獲取希望修改的單元格的控制權(quán)。這會花費(fèi)了一定的開銷。

  · 首先你必須獲取表現(xiàn)Excel本身的對象,有了JCOM輔助類的幫助以后,這一步操作相當(dāng)直接。

  ExcelApplication excel = new ExcelApplication(rm);
  
  · 下一步,你希望獲取對工作薄集合的訪問權(quán)。你希望打開自己的模板工作?。ū臼纠羞@個模板在C:sales.xls中),在工作薄集合中打開它。

  ExcelWorkbooks xlBooks = excel.Workbooks();

  · 下一步,你希望打開自己的工作薄并獲取該工作薄集合的引用。

  ExcelWorkbook xlBook = xlBooks.Open("c:\sales.xls");
  ExcelWorksheets xlSheets = xlBook.Worksheets();

  · 最后,你希望獲取集合中的第一個工作表,并把工作范圍定義為整個工作表。

  ExcelWorksheet xlSheet = xlSheets.Item(1);
  ExcelRange xlRange = xlSheet.Cells();

  完成這些工作以后,你的xlRange對象將允許你在單元中放入值和公式了。通過在前面的記錄集(從提交給數(shù)據(jù)庫的SQL命令中返回的)中循環(huán),使用xlRange.Item(nRow,nCol).Value("whatever")語法,逐行逐列地把記錄集中的值插入到電子表格中(語法中的whatever來自于記錄集)。通過使用rs.getObject(i).toString可以得到當(dāng)前行中I列的值。通過使用rs.movenext(),當(dāng)前行一直向后移動,直到記錄集的末尾。

  你在列表2中可能會注意到一個奇怪的函數(shù)調(diào)用:

  nCol = getExcelColumn(i);

  這是一個簡單的輔助函數(shù),它把記錄集中的列編號與Excel中存放數(shù)據(jù)的位置進(jìn)行匹配。例如,如果你再次查看上面的SQL語句,傭金費(fèi)率將返回到第8列。在電子表格中,存放它的列是第13列。這個函數(shù)用于處理兩者之間的轉(zhuǎn)換。更復(fù)雜的應(yīng)用程序可以使用Excel中的命名(named)范圍來匹配列,但是這超出了本文的范圍。

   最后,應(yīng)用程序把公式輸入適當(dāng)?shù)膯卧小K鞘褂肊xcel的R1C1符號來實現(xiàn)的,因此相應(yīng)的字符串是用于描述公式的。在Excel中,假設(shè)你希望把第1行中A列的值與B列的值相加,然后放到C列中,那么你就需要在C列中輸入公式"=A1+B1"。如果在第二行你也希望這樣操作,那么可以復(fù)制和粘貼這個公式,它會自動地更新為"=A2+B2"。

  從示例程序中得到這些值需要一些字符串操作,但是如果使用"R1C1"相關(guān)的轉(zhuǎn)換就非常直接了。在本文的例子中,你在C1中輸入公式的時候,不需要給出"=A1+B1"引用,而是給出"=RC[-2]+RC[-1]"引用,它的意思是把向前兩列的值與向前一列的值相加。

  當(dāng)你移動了其它行的時候,這個公式的值不會發(fā)生改變,因此它使我們生成程序所需要的值非常簡單了。這也是我用于計算總銷售額、銷售稅金、毛銷售額和純銷售額的方法,如下所示:

  xlRange.Item(nRow,7).Value("=RC[-2]*RC[-1]");
  xlRange.Item(nRow,9).Value("=RC[-2]*RC[-1]/100");
  xlRange.Item(nRow,10).Value("=RC[-3]+RC[-1]");
  xlRange.Item(nRow,11).Value("=RC[-4]*((100-RC[2])/100)");

  運(yùn)行這段代碼將得到圖3所示的電子表格。


  圖3:公式:Excel顯示了數(shù)據(jù)庫查詢的輸出信息

  請注意,這是一種比較好的工程學(xué)經(jīng)驗,即不要在應(yīng)用程序中包含公式,因為公式可能隨時改變,而你肯定不希望在改變公式的時候就去改變自己的代碼。這種辦法使每個新數(shù)據(jù)行成為包含公式的已有數(shù)據(jù)行的副本。模板電子表格(sales.xls)包含了假數(shù)據(jù),并在第二列中包含了公式(第一列包含了列標(biāo)題)。因此,當(dāng)你填充每行的時候,在你填入數(shù)據(jù)庫值的之前線復(fù)制這一行的內(nèi)容。通過這種辦法,公式通過復(fù)制進(jìn)入了新數(shù)據(jù)行,并且你不需要在Java代碼中包含任何業(yè)務(wù)邏輯。

  我們看一看salesReport2.java文件(也在下載內(nèi)容中)中的內(nèi)容,你可以發(fā)現(xiàn),我們并沒有使用前面所說的公式,而是在While循環(huán)頂部使用了下面的代碼:

  if(nRow>1)
  {
  String strDest="A"+(nRow+1);
  ExcelRange xlRange2Copy = xlSheet.Range("A2:M2");
  xlRange2Copy.Copy(xlSheet.Range(strDest));
  }

  除了第一行之外(第一行不需要處理,這樣的信息已經(jīng)包含在sales.xls中了),這段代碼將處理A2到M2之間的單元,并把它們復(fù)制到nRow+1標(biāo)識的數(shù)據(jù)行中(nRow是當(dāng)前行的編號)。加上1的原因是計算了列標(biāo)題(列標(biāo)題在第一行)。

  超越Excel

  請記住JCOM是用于COM的而不僅僅是用于Excel的。你可以使用這種工具在Java中控制幾乎所有的COM對象。Excel是最常見的被控制對象,因為有很多很好的輔助類可以讓它更簡單,但是所有的COM組件都是可以使用的。因此控制其它的應(yīng)用程序(例如Word和Powerpoint)也是直接的。

  下面是使用Word的一個例子:

  IDispatch wdApp = new IDispatch(rm, "Word.Application");
  wdApp.put("Visible", new Boolean(true));

  由于沒有用于Word的直接的輔助類,每個部分都必須通過使用IDispatch對象來實現(xiàn)(用于Excel的下層輔助類也是這樣實現(xiàn)的)。上面的代碼將載入微軟Word副本,并通過wdApp對象使它可以自動化操作。接著你可以使用類似"put"(設(shè)置屬性)或"method"(調(diào)用方法)等方法來使用Word。例如,上面的代碼把Visible屬性設(shè)置為true,使得該Word應(yīng)用程序可視。

  如果你一定要使用Windows,那么有大量的COM組件可以擴(kuò)充你的視野,它的數(shù)量比Java目前提供的多很多。通過串行和并行口進(jìn)行硬件控制也可以在Java中實現(xiàn)了,而這僅僅是個開始。在你的工具包中有了JCOM之后,就不受任何限制了。

標(biāo)簽:武威 大興安嶺 馬鞍山 鄭州 亳州 岳陽 紅河 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Java中使用JCOM操作Office對象》,本文關(guān)鍵詞  Java,中,使用,JCOM,操作,Office,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Java中使用JCOM操作Office對象》相關(guān)的同類信息!
  • 本頁收集關(guān)于Java中使用JCOM操作Office對象的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美女孩性生活视频| 精品国产91亚洲一区二区三区婷婷| 久久国产精品波多野结衣| 国产精品免费福利| 中文字幕不卡的av| 女人黄色一级片| 国产999在线观看| 国产精品福利影院| 欧美三级小视频| 国产在线欧美日韩| 欧美性受xxxx黑人xyx性爽| 丰满熟女人妻一区二区三| 中文字幕中文字幕在线中心一区 | 精品999在线播放| 日本精品久久久久| 国产又大又黄又粗又爽| 午夜精品在线视频| 亚洲三级在线播放| 日本天堂网在线| 日本免费a视频| 伊人久久免费视频| 91首页免费视频| 91香蕉视频在线播放| 牛人盗摄一区二区三区视频| 欧美一区二区三区在线电影| 久久亚洲美女| 国产精九九网站漫画| 国产一区二区视频在线观看| 天天综合天天综合色| 国产精品视频第一页| 不卡影院一区二区| 2019av中文字幕| 亚洲国产日日夜夜| av小说天堂网| 色黄视频免费看| 91九色国产视频| 欧美日韩一区二区在线观看视频| 手机看片福利永久| 日本少妇一区二区三区| 国产免费一区二区三区香蕉精| 欧美日韩亚洲91| 欧美熟女一区二区| 免费不卡的av| 久久99精品久久久久久久久久| 精品久久一区二区三区| 高清不卡在线观看| 久久综合加勒比| 国产日韩欧美精品在线观看| 欧美高清视频免费观看| 一区二区三区中文字幕电影| 亚洲视频中文字幕在线观看| 成人综合久久网| 亚洲伊人久久大香线蕉av| 欧美欧美午夜aⅴ在线观看| 免费成人性网站| 性少妇xx生活| 欧洲金发美女大战黑人| 久久福利视频网| 亚洲一区自拍偷拍| 香港一级纯黄大片| 日本猛少妇色xxxxx免费网站| 亚洲精品一区二区三区四区五区 | 六月丁香婷婷综合| 三级在线视频观看| 99九九视频| 亚洲另类xxxx| 亚洲欧洲精品成人久久奇米网| 国产精品一级视频| 日本不卡视频一区| 视频三区二区一区| 欧美黑人极品猛少妇色xxxxx| 亚洲国产精品久久久久秋霞影院 | 自拍偷拍欧美亚洲| 奇米影音第四色| 成人精品一二区| 亚洲一区www| 亚洲永久免费视频| 男人的天堂久久精品| 黄色录像二级片| 国产精品333| 91久久国产精品| 亚洲国产精品999| 国产精品私人影院| 色哟哟国产精品色哟哟| 婷婷国产成人精品视频| 中文字幕无码精品亚洲35| 91精品久久久久久久久不口人| 亚洲福利影片在线| **欧美大码日韩| 久久亚洲二区| 国产乡下妇女做爰视频| 在线免费黄色网| 四虎影院一区二区三区 | 成年人视频网站免费| 国产精品ⅴa在线观看h| 亚洲精品720p| 亚洲国产精品久久不卡毛片| 国内精品第一页| 欧美成人精品网站| 丰满少妇高潮一区二区| 欧美乱大交xxxxx潮喷l头像| 亚洲综合精品伊人久久| 丝袜亚洲另类欧美重口| 色88888久久久久久影院野外| 成人美女在线观看| av中文字幕免费| 亚洲最大的黄色网址| 日韩一级免费片| 亚洲精品tv久久久久久久久| 日韩免费av片在线观看| 日韩av在线最新| 欧美日韩性生活视频| 99久久精品免费观看| 亚洲乱码在线观看| 五月天婷婷网站| 国产福利短视频| 国产成人久久777777| 欧洲精品久久| 国产精自产拍久久久久久| 视频直播国产精品| 7777精品伊人久久久大香线蕉完整版| 国产精品久久免费看| 美女精品一区二区| 国产精品免费无遮挡| 五月天激情丁香| 乱码一区二区三区| www黄色日本| 日韩福利二区| 国产美女精彩久久| 久久免费观看视频| 国产亚洲精品高潮| 欧美一区欧美二区| 五月天欧美精品| 欧美激情一区二区三区| 黑人巨大精品欧美黑白配亚洲| 国产乱码精品一区二区| 久青草免费视频| 色噜噜日韩精品欧美一区二区| 亚洲精品一二三四五区| 中文字幕色呦呦| 精品日本一区二区三区在线观看| 欧洲中文字幕国产精品| 日韩一区二区三区xxxx| 亚洲国产成人在线播放| 欧美日韩一区二区三区视频| 亚洲精品免费播放| 97精品国产露脸对白| 久久精品国产99国产| 韩国av免费在线| 亚洲影院一区二区三区| 男人天堂中文字幕| 小早川怜子一区二区的演员表| 亚洲成年人在线观看| 男女视频在线看| 日韩少妇内射免费播放| 综合一区中文字幕| 蜜桃视频在线观看91| 91传媒在线免费观看| 国产精品国产三级国产aⅴ9色 | 中文字幕第一页亚洲| 久久青青草综合| 成人欧美一区二区三区视频| 国产精品免费在线免费| 97av在线影院| 久久久久中文字幕| 美女扒开尿口让男人操亚洲视频网站| 日韩成人在线视频观看| 欧美成人vr18sexvr| 欧美高清你懂得| 91成人免费网站| 欧美色道久久88综合亚洲精品| 综合色天天鬼久久鬼色| 欧美国产成人在线| 久久久久久久久97黄色工厂| 91在线观看高清| 成人福利视频在线| 成人性生交大片免费看中文网站| 国产在线不卡一卡二卡三卡四卡| 男女激情视频一区| 奇米影视一区二区三区小说| 日韩电影在线免费看| 老司机精品久久| 日韩福利电影在线观看| 日本欧美一区二区三区| 免费在线看一区| 美女在线视频一区| 激情综合网最新| 国产在线视视频有精品| 精品在线视频一区| 韩国三级电影一区二区| 国产成人av一区二区三区在线 | 一区中文字幕在线观看| 一区二区不卡在线| 天堂av免费看| 免费高清一区二区三区| 黄色一级在线视频| 色婷婷综合久久久久中文字幕| 免费裸体美女网站| 中文字幕亚洲乱码| 亚洲精品成人无码毛片| 波多野结衣影院| 在线免费看黄视频| 性少妇xx生活| 久久精品国产亚洲av无码娇色| 日韩人妻无码一区二区三区99| 天堂中文在线网| 中文字幕在线观看视频一区| 92久久精品一区二区| 性做久久久久久久久久| 手机看片1024日韩| 美洲天堂一区二卡三卡四卡视频 | 欧美精品v日韩精品v韩国精品v| 日韩天堂在线观看| 亚洲欧美日韩爽爽影院| 久久精品国产亚洲精品| 68精品久久久久久欧美 | 日韩中文字幕在线观看| 欧美精品电影在线| 国产精品免费一区| 精品欧美一区二区久久久伦| 亚洲精品国产精品国自产观看| 嫩草影院中文字幕| 国产原创精品在线| 精品人妻一区二区三区视频| 天天操天天操天天操天天操天天操| 国产情侣自拍av| 国产福利第一视频| 美腿丝袜亚洲三区| 久久精品一区四区| 亚洲国产wwwccc36天堂| 欧美日韩国产首页| 亚洲欧美在线第一页| 久久99国产精品久久久久久久久| 欧美一区二区三区……| 999热视频在线观看| 亚洲精品国产精品久久| 国产精品欧美激情在线观看| 精品国产aⅴ一区二区三区东京热| 日韩丰满少妇无码内射| 可以免费看的av毛片| 国产激情无套内精对白视频| 久久国产精品区| 日本一区二区久久| 色94色欧美sute亚洲线路一ni| 亚洲精品不卡在线| 韩国日本不卡在线| 国产精品日韩一区二区| 青青草综合视频| 在线成人免费av| 加勒比婷婷色综合久久| 国产精品视频久久久久久| 国产一区二区毛片| 一区二区在线观看视频在线观看| 欧美日韩aaa| 久久精品视频在线播放| 91久久国产精品91久久性色| 亚洲一区二区三区免费看| 九九热在线免费| 国产视频不卡在线| 亚洲特级黄色片| 国产精品一区二区在线播放| 亚洲女同女同女同女同女同69| 4438x成人网最大色成网站| 久久久国产精品一区| 亚洲精品欧美一区二区三区| 亚洲在线色站| 亚洲av毛片在线观看| 欧美日韩综合一区二区| 免费国产羞羞网站视频| 久久久久久夜精品精品免费| 色婷婷亚洲精品| 日韩一级黄色av| 国产精品久久久久久免费观看| 无码中文字幕色专区| wwwwxxxx国产| 国产精品久久久久久久一区二区| 国产99一区视频免费| 精品福利免费观看| 在线亚洲男人天堂| www.av一区视频| www.玖玖玖| 91视频青青草| 午夜视频免费在线| 亚洲欧美日韩国产综合在线| 亚洲国产精彩中文乱码av在线播放| 欧洲成人在线观看| 国产精品久久成人免费观看| 美女流白浆视频| 免费在线不卡av| 99国产精品久久久久久久久久久 | 国产精品久久久亚洲| 激情五月五月婷婷| 偷拍夫妻性生活| 国产成人精品白浆久久69| 久久久久久久久久久久久夜| 在线不卡欧美精品一区二区三区| 97热在线精品视频在线观看| 亚洲一区二区三区色| 免费a级黄色片| 亚洲va天堂va欧美ⅴa在线| 国产精品午夜在线观看| 亚洲成在人线av| 亚洲资源在线看| 亚洲国产精品三区| 国产美女激情视频| 成人h版在线观看| 日韩一区二区中文字幕| 国产精品女人网站| 日本三级免费观看| 日韩女优在线观看| 成人激情小说乱人伦| 91精品国产综合久久久蜜臀图片 | 国产亚洲xxx| 精品一区在线播放| 国产大学生视频| www.天天干.com| 一区二区三区加勒比av| 日韩在线国产精品| 日韩欧美视频第二区| 久久久久亚洲av无码专区桃色| 狠狠综合久久av一区二区| 亚洲伊人色欲综合网| 久久91亚洲精品中文字幕| 大桥未久一区二区三区| 级毛片内射视频| 蜜臀av一区二区在线观看| 欧美性受极品xxxx喷水| 国产日韩欧美成人| 在线不卡一区二区三区| 一级黄色免费看| 亚洲狼人国产精品| 欧美激情亚洲自拍| 免费毛片网站在线观看| 日韩xxxxxxxxx| 久久精品人人爽人人爽| 一个人看的www久久| 亚洲免费不卡| 精品国产乱码久久久久久鸭王1| 国产成人欧美日韩在线电影| 精品va天堂亚洲国产| 蜜桃成人在线| 在线免费看视频| 国内精品久久久久影院薰衣草| 欧美大片日本大片免费观看| 国产精品区一区二区三含羞草| 亚洲久久久久久| 青青草国产精品97视觉盛宴| 欧美日韩大陆在线| 亚洲在线观看视频网站| 亚洲激情 欧美| 奇米一区二区三区| 欧美一级黄色录像| 久久久一本精品99久久精品66| 婷婷国产成人精品视频| av爱爱亚洲一区| 最近2019中文字幕一页二页| 黄色片免费在线观看视频| 中文字幕在线观看视频网站| 欧美国产一区在线| 欧美激情视频网站| 欧美一级特黄a| 欧美一级特黄aaaaaa| 欧美在线免费观看视频| 99久久综合狠狠综合久久止| 全黄一级裸体片| 国产91精品久久久久久久网曝门| 亚洲欧美日本精品| 日本a在线天堂| 亚洲图片中文字幕| 福利一区视频在线观看| 国产中文字幕91| 日韩av在线看免费观看| 高清在线观看日韩| 久久精品中文字幕一区| 国产欧美高清在线| 北条麻妃一二三区| 欧美精品久久99久久在免费线| 久热国产精品视频一区二区三区| frxxee中国xxx麻豆hd| 国产精品伦一区| 国产精品高潮呻吟久久av野狼| 大乳护士喂奶hd| 成人黄色在线网站| 欧美精品在线免费| 成年人三级黄色片| 免费在线观看日韩欧美| 精品亚洲一区二区三区在线观看 | 国产欧美日韩综合一区在线观看 | 国产精品99久久久久久久女警| 亚洲视频网站在线观看| 欧美激情 国产精品| 狠狠人妻久久久久久综合麻豆| 日韩午夜精品电影| 亚洲精品少妇一区二区| 国产三级按摩推拿按摩| 欧美一区二区三区小说| 天天干天天操天天干天天操| 在线视频欧美亚洲| 337p亚洲精品色噜噜噜| 亚洲欧洲免费无码| 中文字幕福利视频| 8x8x8国产精品| 天堂av免费看| 精品黑人一区二区三区国语馆| 日韩欧美一级二级三级久久久| 伊人网在线免费| 亚洲美女综合网| 亚洲欧美一区二区三区情侣bbw| 91黄色小网站| 久久se这里有精品|