日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#操作Excel(1)Excel对象模型

發(fā)布時(shí)間:2023/12/20 C# 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#操作Excel(1)Excel对象模型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Excel對(duì)象模型? (.Net Perspective)

本文主要針對(duì)在Visual Studio中使用C#?開(kāi)發(fā)關(guān)于Excel的應(yīng)用程序

本文的PDF下載地址:C#操作Excel2007.pdf

來(lái)源:Understandingthe Excel Object Model from a .NET Developer's Perspective

Excel對(duì)象模型中的四大主要對(duì)象: Application Excel應(yīng)用程序本身 Workbook? 工作表Sheet的集合 Worksheet ? ? ? ? ? ? ? 一個(gè)工作表Sheet Range ? ? ? ? ? ? ? ? ? ??表示一塊區(qū)域

所有Excel對(duì)象請(qǐng)參考MSDN:

ExcelObject Model Reference

----------------------------------------------華麗分割-------------------------------------------------

1.???????Application?

首先討論Application對(duì)象,Application對(duì)象的成員大概可以分成5大類

?

  • l? 控制Excel的狀態(tài)與顯示
  • l? 返回對(duì)象
  • l? 執(zhí)行Action
  • l? 控制文件操作(handle file manipulation)
  • l? 其他

?

?

1.1 Application成員之:控制Excel的狀態(tài)與顯示

Property

Type

Description

Cursor

XlMousePointer (xlDefault, xlIBeam, xlNorthwestArrow, xlWait)

設(shè)置/取得 鼠標(biāo)指針的Appearence

EditDirectlyInCell

Boolean

Gets or sets the ability to edit cells directly in place. If False, you can only edit cells in the formula bar.

FixedDecimal

Boolean

If?True, all numeric values use the?FixedDecimalPlacesproperty to determine the number of decimal places; otherwise,?FixedDecimalPlaces?property is ignored (the default value is False).

FixedDecimalPlaces

Long

Determines the number of decimal places to be used for numeric data if the?FixedDecimal?property is True.

Interactive

Boolean

Gets or sets the ability of the user to interact with Excel via the keyboard and mouse; if you set this property to False, make absolutely sure you set it back to True in your exception handler. Excel won't reset it for you.

MoveAfterReturn

Boolean

如果為真,表示按下回車鍵后移動(dòng)到下一個(gè)單元格

MoveAfterReturnDirection

xlDirection (xlDown, xlToLeft, xlToRight, xlUp)

設(shè)置按下回車鍵后,單元格focus的移動(dòng)方向,( 僅在MoveAfterReturn?屬性為真時(shí)有效) 默認(rèn)移動(dòng)方向:xlDown.

ScreenUpdating

Boolean

If True, Excel updates its screen after each method call. To save time, and to make your application look more professional,you can turn off the display while your code is running. Make sure you reset this property to True again once you're done. Excel won't reset it for you.

SheetsInNewWorkbook

Long

Gets or sets the number of sheets Excel automatically places in new workbooks

StandardFont

String

Gets or sets the name of the default font in Excel; doesn't take effect until you restart Excel.

StandardFontSize

Long

Gets or sets the size of the default font in Excel; doesn't take effect until you restart Excel.

StartupPath (read-only

String

Returns the complete path of the folder containing the Excel startup add-ins.

TemplatesPath (read-only)

String

Returns the complete path of the folder containing templates; this value represents one of the Windows special folders.

?

上面列出的屬性中,比較重要的是:ScreenUpdating

它的含義是:是否在任一函數(shù)執(zhí)行完成后更新Excel的界面顯示。如果你在進(jìn)行大數(shù)據(jù)量的計(jì)算,這一功能盡量關(guān)閉,因?yàn)檫@可以提高你的任務(wù)執(zhí)行速度。

ScreenUpdating在C#中的使用方法是:(執(zhí)行完任務(wù)記得重新開(kāi)啟該功能)

?

[csharp]?view plaincopy
  • //?C#??
  • try??
  • {??
  • ???ThisApplication.ScreenUpdating?=?false;??
  • ???//?Do?your?work?that?updates?the?screen.??
  • }??
  • ???
  • finally??
  • {??
  • ???ThisApplication.ScreenUpdating?=?true;??
  • }??
  • ???
  • ?

    下面再介紹幾個(gè)有關(guān)屬性:

    Property

    Type

    Description

    DisplayAlerts

    Boolean

    If True (the default value), Excel displays warning messages while your code runs, as necessary--when deleting a sheet, for example. Set to False to bypass warnings. Excel acts as if you had selected the default value for each alert.

    DisplayFormulaBar

    Boolean

    If True (the default value), Excel displays the standard formula bar for editing cells; set to False to hide the editing bar.

    DisplayFullScreen

    Boolean

    If True, Excel runs in full-screen mode (which has a different effect from simply maximizing the Excel window); the default value is False.

    ?

    1.2?Application成員之:?who return objects

    Excel庫(kù)包含很多類,但是在Visual Studio中提供給開(kāi)發(fā)人員的只有Excel.Application,Workbook等,那么我們?cè)趺传@得其他很多有用的類型呢?

    ????? 比如,我想獲得當(dāng)前活動(dòng)的單元格(cell),怎么辦?不用擔(dān)心,Application對(duì)象提供很多屬性能夠返回其他很多類型的對(duì)象的引用。下面具體來(lái)看一下:

    Property

    Type

    Description

    ActiveCell

    Range

    Returns a reference to the currently active cell in the active window (the window that's on top). If there's no active window, this property raises an error.

    ActiveChart

    Chart

    Returns a reference to the currently active chart. An embedded chart is only considered active when it's selected or activated.

    ActiveSheet

    Object

    Returns a reference to the active sheet in the active workbook.

    ActiveWindow

    Window

    Returns a reference to the active window (the window that's on top); returns Nothing if there are no active windows.

    Charts

    Sheets

    Returns a collection of?Sheet?objects (the parent for bothChart?and?Worksheet?objects) containing references to each of the charts in the active workbook.

    Selection

    Object

    Returns the selected object within the application. Might be a?Range, a?Worksheet, or any other object—also applies to the?Window?class, in which case the selection is generally a?Range?object. If no object is currently selected, returns Nothing.

    Sheets

    Sheets

    Returns a collection of?Sheet?objects containing references to each of the sheets in the active workbook.

    Workbooks

    Workbooks

    Returns a collection of?Workbook?objects containing references to all the open workbooks.

    上面的屬性中,Workbooks屬性無(wú)疑是最常用的。通過(guò)這個(gè)屬性,我們可以打開(kāi)或者創(chuàng)建一個(gè)workbook,下面我們具體看一下該屬性的一些行為。

    1.????創(chuàng)建workbook

    ?

    [csharp]?view plaincopy
  • Excel.Workbook?wb?=?ThisApplication.Workbooks.Add(Type.Missing);??
  • ??

    ?

    2.????關(guān)閉workbook

    ?

    [csharp]?view plaincopy
  • ThisApplication.Workbooks.Close();??
  • ?

    3.????打開(kāi)一個(gè)存在的workbook

    ?

    [csharp]?view plaincopy
  • Excel.Workbook?wb?=?ThisApplication.Workbooks.Open(???
  • ????"C:\\YourPath\\Yourworkbook.xls",???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ???????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • Type.Missing,?Type.Missing);??
  • ?

    4.????用Excel的方式打開(kāi)XML文件,數(shù)據(jù)庫(kù)文件或者TXT文件

    OpenXML,OpenDatabase,OpenText

    ?

    5.????通過(guò)名字或者索引引用workbook

    ?

    [csharp]?view plaincopy
  • Excel.Workbook?wb?=?ThisApplication.Workbooks[1];??
  • wb?=?ThisApplication.Workbooks["Book1"];//在workbook未保存的情況下??
  • wb?=?ThisApplication.Workbooks["Book1.xls"];//在workbook已經(jīng)保存的情況下??
  • 1.3?Application成員之:?Execute Actions

    這類成員包括Calculate,CheckSpelling,Evaluate,Sendmaid,Undo,Quit。。。實(shí)在是太多了,請(qǐng)參考原文。

    ?

    1.4?Application成員之:?Handles File Manipulation

    l? 缺省文件路徑??????????? DefaultFilePath

    ?

    [csharp]?view plaincopy
  • //?C#??
  • //?When?the?workbook?opens:??
  • ThisApplication.get_Range("DefaultFilePath",?Type.Missing).??
  • ????Value2?=?ThisApplication.DefaultFilePath;??
  • ???
  • //?When?you?save?the?DefaultFilePath?property:??
  • ThisApplication.DefaultFilePath?=???
  • ????ThisApplication.get_Range("DefaultFilePath",?Type.Missing).??
  • ????Value2.ToString();??
  • ?

    l? 默認(rèn)的保存文件格式 DefaultSaveFormat

    下圖展示了Excel支持的保存文件格式

    ?

    [csharp]?view plaincopy
  • //?例1??
  • //?When?the?workbook?opens,?convert?the?enumerated?value???
  • //?into?a?string:??
  • //獲得默認(rèn)的保存格式屬性DefaultSaveFormat??
  • ThisApplication.get_Range("DefaultSaveFormat",?Type.Missing).??
  • ????Value2?=?ThisApplication.DefaultSaveFormat.ToString();??
  • ???
  • ???
  • //例2.設(shè)置該屬性,相對(duì)比較復(fù)雜??
  • //?步驟1.Retrieve?the?name?of?the?new?save?format,?as?a?string:??
  • string??strSaveFormat?=?ThisApplication.??
  • ??get_Range("DefaultSaveFormat",?Type.Missing).??
  • ??Value2.ToString();??
  • ???
  • //步驟2??
  • Excel.Range?rng?=?ThisApplication.??
  • ????get_Range("xlFileFormat",?Type.Missing);??
  • Excel.Range?rngFind?=?rng.Find(strSaveFormat,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Excel.XlSearchDirection.xlNext,?Type.Missing,?Type.Missing,???
  • Type.Missing);??
  • ???
  • //?In?C#,?use?the?get_Offset?method?instead?of?the?Offset?property:??
  • int?intSaveFormat?=???
  • Convert.ToInt32(rngFind.get_Offset(0,?1).Value2);??
  • ???
  • //步驟3.??
  • ThisApplication.DefaultSaveFormat?=???
  • ??Excel.XlFileFormat)?intSaveFormat;??
  • ?

    l? RecentFiles屬性

    ?

    [csharp]?view plaincopy
  • //?列出最近打開(kāi)的文檔<strong>??
  • </strong>private?void?ListRecentFiles()??
  • {??
  • ????Excel.Range?rng?=?(Excel.Range)ThisApplication.??
  • ????????get_Range("RecentFiles",?Type.Missing).Cells[1,?1];??
  • ???
  • ????for?(int?i?=?1;?i?<=?ThisApplication.RecentFiles.Count;?i++)??
  • ????{??
  • ????????rng.get_Offset(i?-?1,?0).Value2?=???
  • ????????????ThisApplication.RecentFiles[i].Name;??
  • ????}???
  • }??
  • ?

    ?

    l? FileDialog屬性

    Using this dialog box, you cantake advantage of all the file handling capabilities provided by MicrosoftOffice.

    The?FileDialog?property requires that you select aparticular use of the dialog box by passing it one of themsoFileDialogType?enumerated values:

    msoFileDialogFilePicker,?

    msoFileDialogFolderPicker,?

    msoFileDialogOpen, or?

    msoFileDialogSaveAs.?

    You can then interact with the?FileDialog?object returned by the property.

    使用該屬性需要引用Microsoft.Office.Core 命名空間

    ?

    [csharp]?view plaincopy
  • //?C#??
  • using?Office?=?Microsoft.Office.Core;??
  • ?

    執(zhí)行打開(kāi)文件對(duì)話框的show()函數(shù),將顯示該對(duì)話框。用戶點(diǎn)擊OK,則該函數(shù)返回-1,若點(diǎn)擊Cancel,則該函數(shù)返回0。

    ?

    [csharp]?view plaincopy
  • //?打開(kāi)FileDialog,選擇一個(gè)文件打開(kāi)??
  • dlg?=?ThisApplication.get_FileDialog(??
  • ????Office.MsoFileDialogType.msoFileDialogOpen);??
  • dlg.Filters.Clear();??
  • dlg.Filters.Add("Excel?Files",?"*.xls;*.xlw",?Type.Missing);??
  • dlg.Filters.Add("All?Files",?"*.*",?Type.Missing);??
  • if(dlg.Show()?!=?0)??
  • ????dlg.Execute();??
  • 1.5?Application成員之:?其他

    ?

    大致包括以下幾類:(具體請(qǐng)參考MSDN)

    ?

    • WorksheetFunctionClass
    • WindowClass & Window Collection
    • NameClass & Name Collection
    • ApplicationEvent

    ?

    ------------------------------------華麗分割------------------------------------

    ?

    2. Workbook

    該類提供約90個(gè)屬性。很多是開(kāi)發(fā)者想象不到的屬性,比如:

    ?

    • AutoUpdateFrequency 返回一個(gè)共享的workbook的自動(dòng)更新間隔時(shí)間
    • Date1904 返回true表示當(dāng)前使用的是data 1904 時(shí)間系統(tǒng)
    • PasswordEncryptionAlgorithm允許你設(shè)置加密算法。

    ?

    下面給出最常使用的Workbook屬性

    ?

    • ? Name,Fullname ,Path
    [csharp]?view plaincopy
  • ThisApplication.get_Range("WorkbookName",?Type.Missing).??
  • ????Value2?=?ThisWorkbook.Name;??
  • ThisApplication.get_Range("WorkbookPath",?Type.Missing).??
  • ????Value2?=?ThisWorkbook.Path;??
  • ThisApplication.get_Range("WorkbookFullName",?Type.Missing).??
  • ????Value2?=?ThisWorkbook.FullName;??
  • ?

    ?

    ?

    • Password(給EXCEL文件加密)
    [csharp]?view plaincopy
  • private?void?SetPassword()??
  • {??
  • ????Password?frm?=?new?Password();??
  • ???
  • ????if?(frm.ShowDialog()?==?DialogResult.OK)??
  • ????????ThisWorkbook.Password?=?frm.Value;??
  • ????frm.Dispose();??
  • }??
  • ?

    ?

    • PrecisionAsDisplayed
    [csharp]?view plaincopy
  • private?void?TestPrecisionAsDisplayed(??
  • ????bool?IsPrecisionAsDisplayedOn)??
  • {??
  • ????ThisWorkbook.PrecisionAsDisplayed?=???
  • ????????IsPrecisionAsDisplayedOn;??
  • }??
  • ?

    ?

    ?

    • ReadOnly? (boolean)??? 返回當(dāng)前打開(kāi)的文件是否是只讀的
    • ? Saved? ????? (boolean)??? 設(shè)置/獲取 saved state

    ?

    Working with Styles?

    ?

    [csharp]?view plaincopy
  • //?風(fēng)格設(shè)置??
  • private?void?ApplyStyle()??
  • {??
  • ????const?String?STYLE_NAME?=?"PropertyBorder";??
  • ????//?Get?the?range?containing?all?the?document?properties.??
  • ????Excel.Range?rng?=?GetDocPropRange();??
  • ????Excel.Style?sty;??
  • ????try??
  • ????{??
  • ????????sty?=?ThisWorkbook.Styles[STYLE_NAME];??
  • ????}??
  • ????catch??
  • ????{??
  • ????????sty?=?ThisWorkbook.Styles.Add(STYLE_NAME,?Type.Missing);??
  • ????}??
  • ???
  • ????sty.Font.Name?=?"Verdana";??
  • ????sty.Font.Size?=?12;??
  • ????sty.Font.Color?=?ColorTranslator.ToOle(Color.Blue);??
  • ????sty.Interior.Color?=?ColorTranslator.ToOle(Color.LightGray);??
  • ????sty.Interior.Pattern?=?Excel.XlPattern.xlPatternSolid;??
  • ????rng.Style?=?STYLE_NAME;??
  • ????rng.Columns.AutoFit();??
  • }??
  • ???
  • ???
  • private?Excel.Range?GetDocPropRange()??
  • {??
  • ????Excel.Range?rng?=???
  • ????????ThisApplication.get_Range("DocumentProperties",?Type.Missing);??
  • ???
  • ????Excel.Range?rngStart?=???
  • ????????(Excel.Range)?rng.Cells[1,?1];??
  • ???
  • ????Excel.Range?rngEnd?=???
  • ????????rng.get_End(Excel.XlDirection.xlDown).get_Offset(0,?1);??
  • ???
  • ????return?ThisApplication.get_Range(rngStart,?rngEnd);??
  • }??
  • ???
  • ?

    設(shè)置風(fēng)格后的樣子:

    當(dāng)然,設(shè)置Style后也可以清除Style

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?void?ClearStyle()??
  • {??
  • ????//?Get?the?range?containing?all?the?document?properties,?and??
  • ????//?clear?the?style.??
  • ????GetDocPropRange().Style?=?"Normal";??
  • }??
  • ?

    Working with Sheets

    ?

    [csharp]?view plaincopy
  • //?C#?列出所有Sheet??
  • private?void?ListSheets()??
  • {??
  • ????int?i?=?0;??
  • ???
  • ????Excel.Range?rng?=???
  • ????????ThisApplication.get_Range("Sheets",?Type.Missing);??
  • ????foreach?(Excel.Worksheet?sh?in?ThisWorkbook.Sheets)??
  • ????{??
  • ????????rng.get_Offset(i,?0).Value2?=?sh.Name;??
  • ????????i?=?i?+?1;??
  • ????}??
  • }??
  • ?

    ?

    ----------------------------------------------華麗分割-----------------------------------------------

    3. WorkSheet

    當(dāng)你閱讀到這里的時(shí)候,你已經(jīng)了解了大部分關(guān)于worksheet的概念。盡管Worksheet類提供了大量屬性,方法,事件;但其實(shí)它們的實(shí)現(xiàn)方法基本與Application和Workbook中的實(shí)現(xiàn)方法相同。這一節(jié)著重介紹之前沒(méi)有討論的內(nèi)容。

    3.1?There is no Sheet Class..?

    什么?沒(méi)有Sheet類?

    ????? 我們知道,Workbook對(duì)象有一個(gè)屬性叫做Sheets,它是一個(gè)Workbook中Sheet的集合,但Excel中確實(shí)沒(méi)有叫做Sheet的類。取而代之的是,Sheets集合中的每一個(gè)元素都是一個(gè)WorkSheet對(duì)象或者Chart對(duì)象。你可以這樣去想: Worksheet以及Chart類都是specialized instances of an internal Sheet Class

    ?

    3.2? Working with Protection

    通常,protection特性用于防止用戶修改worksheet中的對(duì)象。一旦你使能了worksheet的protection功能,那么用戶將無(wú)法編輯&修改該sheet。在用戶界面,你可以選擇Tools | Protection | ProtectSheet(Excel2007下面是 審閱 | 更改 | 保護(hù)工作表)來(lái)使能protection。如下圖所示:

    ?

    你也可以定義允許用戶編輯的區(qū)域:

    通過(guò)以上兩個(gè)對(duì)話框,你就可以鎖定sheet,同時(shí)允許用戶編輯指定的選項(xiàng)以及區(qū)域(edit specificfeatures and ranges)。

    當(dāng)然,上述的內(nèi)容也可以讓C#幫我們完成。

    ?

    [csharp]?view plaincopy
  • //?C#??
  • WorksheetObject.Protect(Password,?DrawingObjects,?Contents,???
  • ??Scenarios,?UserInterfaceOnly,?AllowFormattingCells,???
  • ??AllowFormattingColumns,?AllowFormattingRows,???
  • ??AllowInsertingColumns,?AllowInsertingRows,???
  • ??AllowInsertingHyperlinks,?AllowDeletingColumns,???
  • ??AllowDeletingRows,?AllowSorting,?AllowFiltering,???
  • ??AllowUsingPivotTables);??
  • ?

    ?

    上面的Protect方法有很多參數(shù),分別對(duì)應(yīng)保護(hù)的內(nèi)容。

    ?

    • Password??對(duì)應(yīng)密碼,當(dāng)你要撤銷保護(hù)時(shí)需要指定密碼
    • DrawingObjects????保護(hù)Shapes on the worksheet
    • Contents?????????保護(hù)cells,即所有單元格內(nèi)容
    • Scenarios????????保護(hù)情景
    • UserInterfaceOnly????? 允許通過(guò)代碼修改,不允許通過(guò)用戶界面修改AllowFormattingCells AllowFormattingColumns….后面不再贅述

    ?

    下面這個(gè)例子,設(shè)置了密碼,同時(shí)只允許Sorting

    ?

    [csharp]?view plaincopy
  • //?C#??
  • ((Excel.Worksheet)ThisApplication.Sheets[1]).Protect(??
  • ????"MyPassword",?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing,?true,?Type.Missing,?Type.Missing);??
  • ?

    下面的代碼展示如何去保護(hù)(提示讓用戶輸入密碼)

    ?

    [csharp]?view plaincopy
  • //?C#??
  • ((Excel.Worksheet)ThisApplication.Sheets[1]).??
  • ??Unprotect(GetPasswordFromUser());??
  • ?

    除此之外,Protection還提供了AllowEditRanges屬性,可以讓你指定可編輯的范圍。AllowEditRanges屬性是AllowEditRange對(duì)象的集合,每一個(gè)對(duì)象都提供了一些有用的屬性,比如:

    ?

    • l? Range?????? get/set range of the editable area
    • l? Title????????? get/set the title of the editableregion
    • l? Users???????? get/set a collection of UserAccessobject

    ?

    下面這個(gè)例子演示了Protection的功能,當(dāng)你點(diǎn)擊Protect時(shí),你只能編輯陰影區(qū)域,點(diǎn)擊Unprotect可以去保護(hù)。

    代碼如下:(對(duì)應(yīng)點(diǎn)擊圖中的鏈接(Protect,Unprotect)執(zhí)行的代碼)

    ?

    [csharp]?view plaincopy
  • //?C#??
  • ???
  • private?void?ProtectSheet()??
  • {???????
  • ????Excel.Worksheet?ws?=??
  • ??????(Excel.Worksheet)ThisApplication.ActiveSheet;??
  • ???
  • ????Excel.AllowEditRanges?ranges?=?ws.Protection.AllowEditRanges;??
  • ????ranges.Add("Information",???
  • ????????ThisApplication.get_Range("Information",?Type.Missing),???
  • ????????Type.Missing);??
  • ????ranges.Add("Date",???
  • ????????ThisApplication.get_Range("Date",?Type.Missing),?Type.Missing);??
  • ???
  • ????ws.Protect(Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,Type.Missing,?Type.Missing,???
  • ????????Type.Missing,Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,Type.Missing,Type.Missing,??
  • ????????Type.Missing,Type.Missing);??
  • }??
  • ???
  • private?void?UnprotectSheet()??
  • {??
  • ????Excel.Worksheet?ws?=???
  • ????????(Excel.Worksheet)?ThisApplication.Sheets["Worksheet?Class"];??
  • ????ws.Unprotect(Type.Missing);??
  • ???
  • ????//?Delete?all?protection?ranges,?just?to?clean?up.??
  • ????//?You?must?loop?through?this?using?the?index,???
  • ????//?backwards.?This?collection?doesn't?provide???
  • ????//?an?enumeration?method,?and?it?doesn't?handle??
  • ????//?being?resized?as?you're?looping?in?a?nice?way.??
  • ????Excel.AllowEditRanges?ranges?=?ws.Protection.AllowEditRanges;??
  • ????for?(int?i?=?ranges.Count;?i?>=?1;?i--)??
  • ????{??
  • ????????ranges[i].Delete();??
  • ????}??
  • }??
  • 3.3? Object Properties

    ?

    Worksheet類提供了一些屬性(that return objects),下面介紹兩個(gè)有用屬性:

    Comments以及Outline

    3.3.1 ?Comments (批注)

    在Excel2007中,選中一塊區(qū)域或者單元格后,點(diǎn)擊右鍵,可以插入批注。插入批注后的樣子如下圖所示

    Worksheet類提供Comments屬性,通過(guò)該屬性,你可以訪問(wèn)該工作表內(nèi)的所有批注。Comments類沒(méi)有多少屬性,你可能會(huì)使用Visible屬性來(lái)控制批注的顯示與隱藏,Delete屬性來(lái)刪除批注,或者你可能會(huì)發(fā)現(xiàn)Text方法比較有用,因?yàn)榭梢酝ㄟ^(guò)它來(lái)給批注增加內(nèi)容或者重寫(xiě)批注。

    下面是一個(gè)及其簡(jiǎn)單的例子,來(lái)控制顯示批注

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?void?ShowOrHideComments(bool?show)??
  • {??
  • ????//?Show?or?hide?all?the?comments:??
  • ????Excel.Worksheet?ws?=???
  • ????????(Excel.Worksheet)?ThisApplication.Sheets["Worksheet?Class"];??
  • ???
  • ????for?(int?i?=?1;?i?<=?ws.Comments.Count;?i++)??
  • ????{??
  • ????????ws.Comments[i].Visible?=?show;??
  • ????}??
  • }??
  • 3.3.2 Outline

    ?

    Outline的功能是把row劃分成組,使得Excel的顯示更有層次感與結(jié)構(gòu)氣息。

    例如,下面兩張圖片

    左圖:創(chuàng)建Outline??????????????????????????? 右圖:折疊后效果

    tline屬性本身是一個(gè)Outline對(duì)象,它自身屬性不多,主要有以下幾個(gè):

    ?

    • l? AutomaticStyles???????? 告訴Excel是否應(yīng)用automatic style to outline
    • l? SummaryColumn?????? get or set the location of the summarycolumns, (兩個(gè)選項(xiàng):? xlSummaryOnLeft? xlSummaryOnRight)
    • l? SummaryRow??????????? get or set the location of thesummary rows,(兩個(gè)選項(xiàng):? xlSummaryAbove? xlSummaryBelow)
    • l? ShowLevels??????????????? 允許你折疊/擴(kuò)展outline groups to the row level and/or column levelyou want.

    ?

    經(jīng)過(guò)上面的介紹,你應(yīng)該對(duì)Outline有了基本的了解,下面開(kāi)始使用C#操作Outline。

    首先是創(chuàng)建Group,創(chuàng)建Group是簡(jiǎn)單的,你可以調(diào)用range對(duì)象的Group()方法;調(diào)用Ungroup()方法移除Group。

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?void?WorkWithGroups()??
  • {??
  • ????Excel.Worksheet?ws?=???
  • ????????(Excel.Worksheet)?ThisApplication.ActiveSheet;??
  • ???
  • ????//?Set?worksheet-level?features?for?the?outline.??
  • ????//?In?this?case,?summary?rows?are?below??
  • ????//?the?data?rows?(so?Excel?knows?where?to?put??
  • ????//?the?summary?rows),?and?we?don't?want?Excel??
  • ????//?to?format?the?summary?rows--that's?already?been?done.??
  • ????ws.Outline.SummaryRow?=?Excel.XlSummaryRow.xlSummaryBelow;??
  • ????ws.Outline.AutomaticStyles?=?false;??
  • ???
  • ????//?Group?the?two?named?ranges.?Each?of?these??
  • ????//?ranges?extends?across?entire?rows.??
  • ????ThisApplication.get_Range("Data2001",?Type.Missing).??
  • ????????Group(Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing);??
  • ????ThisApplication.get_Range("Data2002",?Type.Missing).??
  • ????????Group(Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing);??
  • ????ThisApplication.get_Range("AllData",?Type.Missing).??
  • ????????Group(Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing);??
  • ???
  • ????//?The?range?of?rows?from?24?to?27?doesn't?have???
  • ????//?a?named?range,?so?you?can?work?with?that???
  • ????//?range?directly.??
  • ????Excel.Range?rng?=?(Excel.Range)ws.Rows["24:27",?Type.Missing];??
  • ????rng.Group(Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing);??
  • ???
  • ????//?Collapse?to?the?second?group?level.??
  • ????ws.Outline.ShowLevels(2,?Type.Missing);??
  • }??
  • ?

    對(duì)于unnamed range,方法如下:

    ?

    [csharp]?view plaincopy
  • //?C#??
  • Excel.Range?rng?=?(Excel.Range)ws.Rows["24:27",?Type.Missing];??
  • rng.Group(Type.Missing,?Type.Missing,???
  • ???????????Type.Missing,?Type.Missing);??
  • ?

    在前面的圖片中點(diǎn)擊Clear Groups link將清除Groups,對(duì)應(yīng)代碼如下:

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?void?ClearGroups()??
  • {??
  • ????Excel.Worksheet?ws?=???
  • ????????(Excel.Worksheet)?ThisWorkbook.Sheets["Worksheet?Class"];??
  • ???
  • ????//?Specify?RowLevels?and/or?ColumnLevels?parameters:??
  • ????ws.Outline.ShowLevels(3,?Type.Missing);??
  • ???
  • ????Excel.Range?rng?=?(Excel.Range)?ws.Rows["24:27",?Type.Missing];??
  • ????rng.Ungroup();??
  • ???
  • ????ThisApplication.get_Range("Data2001",?Type.Missing).Ungroup();??
  • ????ThisApplication.get_Range("Data2002",?Type.Missing).Ungroup();??
  • ????ThisApplication.get_Range("AllData",?Type.Missing).Ungroup();??
  • }??
  • ?

    OK,通過(guò)上面的技巧,你就可以創(chuàng)建&移除groups了。同時(shí)你也可以控制工作表上顯示的group的層次了!

    ?

    ----------------------------------------------華麗分割-----------------------------------------------

    ?

    4. Range

    Range 對(duì)象將是你在開(kāi)發(fā)關(guān)于Excel的應(yīng)用程序中最經(jīng)常使用的,在你操作任何Excel中的區(qū)域之前,你都要使用一個(gè)Range對(duì)象來(lái)表示該區(qū)域,然后通過(guò)Range對(duì)象的方法和屬性來(lái)操作該區(qū)域。

    Range對(duì)象是如此的重要,以至于本文上述所有的例子幾乎都存在Range對(duì)象。通常,一個(gè)Range對(duì)象可以代表一個(gè)單元格,一行,一列,一塊區(qū)域(containing oneor more blocks of cells)甚至是一組在不同sheets中的單元格。

    不幸的是,由于Range對(duì)象太大,成員太多,故不可能對(duì)其成員進(jìn)行逐一描述。所以,下面從三個(gè)比較重要的方面介紹Range對(duì)象

    ?

    • l? 在代碼中引用ranges
    • l? 在代碼中操作ranges
    • l? 使用Range對(duì)象完成特定任務(wù)
    4.1Managing The Selection

    ?

    ????? Work with current selection 等價(jià)于修改當(dāng)前選中Range的屬性和行為,不過(guò)你最好避免這么做。因?yàn)?,selection within Excel代表著用戶的選擇。如果你修改了它,那么將導(dǎo)致用戶失去對(duì)“當(dāng)前選擇”的控制。關(guān)于selection,第一準(zhǔn)則是:you should call the Selectmethod only if your intent is to change the user’s selection.

    例如,下面的代碼將清除用戶當(dāng)前選中單元格旁邊的單元格的內(nèi)容

    ?

    [csharp]?view plaincopy
  • //?C#??
  • ThisApplication.ActiveCell.CurrentRegion.Select();??
  • ((Excel.Range)ThisApplication.Selection).ClearContents();??
  • ?

    ?

    4.2? Referring to a Range in Code

    1)????基本的引用Range方法

    1.???引用ActiveCell

    ?

    [csharp]?view plaincopy
  • rng?=?ThisApplication.ActiveCell;??
  • ?

    2.???使用get_Range方法,指定Range范圍

    ?

    [csharp]?view plaincopy
  • //?C#??
  • rng?=?ws.get_Range("A1",?Type.Missing);??
  • rng?=?ws.get_Range("A1:B12",?Type.Missing);??
  • ?

    3.???使用Cells屬性

    ?

    [csharp]?view plaincopy
  • //?C#??
  • rng?=?(Excel.Range)ws.Cells[1,?1];??
  • ?

    4.???指定Range的角,同時(shí)可以直接引用該Range的Cells Rows Columns屬性

    ?

    [csharp]?view plaincopy
  • //?C#??
  • rng?=?ws.get_Range("A1",?"C5");??
  • rng?=?ws.get_Range("A1",?"C5").Cells;??
  • rng?=?ws.get_Range("A1",?"C5").Rows;??
  • rng?=?ws.get_Range("A1",?"C5").Columns;??
  • ?

    5.???引用一個(gè)帶名字的Range

    ?

    [csharp]?view plaincopy
  • //?C#??
  • rng?=?ThisApplication.Range("SomeRangeName",?Type.Missing);??
  • ?

    6.???引用特定的行或者列

    ?

    [csharp]?view plaincopy
  • //?C#??
  • rng?=?(Excel.Range)ws.Rows[1,?Type.Missing];??
  • rng?=?(Excel.Range)ws.Rows["1:3",?Type.Missing];??
  • rng?=?(Excel.Range)ws.Columns[3,?Type.Missing];??
  • ?

    7.???使用Application對(duì)象的Selection方法獲取選中Cells對(duì)應(yīng)的Range

    執(zhí)行下面代碼,將在調(diào)試窗口看到:"$C$3"

    ?

    [csharp]?view plaincopy
  • //?C#??
  • System.Diagnostics.Debug.WriteLine(??
  • ????((Excel.Range)ThisApplication.Selection).??
  • ????get_Address(??Type.Missing,?Type.Missing,???
  • ????????????????????????Excel.XlReferenceStyle.xlA1,???
  • ?????????????????Type.Missing,?Type.Missing)??
  • );??
  • ???
  • ?

    8.???兩個(gè)Range合并為一個(gè)Range

    ?

    [csharp]?view plaincopy
  • //?簡(jiǎn)單的合并方法??
  • rng?=?ThisApplication.get_Range("A1:D4,?F2:G5",?Type.Missing);??
  • ???
  • //?相對(duì)復(fù)雜的合并方法??
  • rng1?=?ThisApplication.get_Range("A1",?"D4");??
  • rng2?=?ThisApplication.get_Range("F2",?"G5");??
  • //?Note?that?the?Union?method?requires?you?to?supply?thirty??
  • //?parameters:???
  • rng?=?ThisApplication.Union(rng1,?rng2,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,??
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,??
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,??
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,??
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,??
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing);??
  • ?

    9.???Range的Offset屬性

    ?

    [csharp]?view plaincopy
  • //?adds?content?to?the?area?under?the?cell?at?row?1,?column?1??
  • rng?=?(Excel.Range)?ws.Cells[1,?1];??
  • for?(int?i?=?1;?i?<=?5;?i++)??
  • {??
  • ????rng.get_Offset(i,?0).Value2?=?i.ToString();//參數(shù)1代表Row,2代表Col??
  • }??
  • ?

    ?

    10,11,12....100#$%^&**(&%$...太多了,不能一一介紹

    經(jīng)過(guò)上面的介紹,是不是有一點(diǎn)暈?zāi)?#xff1f;下面通過(guò)一個(gè)小例子來(lái)演示一下Range的功能吧。

    ??????在使用Excel中,我們可能希望在選中一個(gè)單元格后使整行加粗顯示,即實(shí)現(xiàn)選中效果,但是Excel中沒(méi)有對(duì)該功能的支持。但是,通過(guò)代碼不難實(shí)現(xiàn)該功能,首先看一下實(shí)際效果吧。

    可以看到,選中的單元格所在行變成了Bold顯示。

    其實(shí)現(xiàn)代碼如下:

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?int?LastBoldedRow?=?0;??
  • private?void?BoldCurrentRow(Excel.Worksheet?ws)???
  • {??
  • ????//?Keep?track?of?the?previously?bolded?row.??
  • ???
  • ????//?Work?with?the?current?active?cell.??
  • ????Excel.Range?rngCell?=?ThisApplication.ActiveCell;??
  • ???
  • ????//?Bold?the?current?row.??
  • ????rngCell.EntireRow.Font.Bold?=?true;??
  • ???
  • ????//?Make?sure?intRow?isn't?0?(meaning?that???
  • ????//?this?is?your?first?pass?through?here).??
  • ????if?(LastBoldedRow?!=?0)???
  • ????{??
  • ????????//?If?you're?on?a?different??
  • ????????//?row?than?the?last?time?through?here,??
  • ????????//?make?the?old?row?not?bold.??
  • ????????if?(rngCell.Row?!=?LastBoldedRow)???
  • ????????{??
  • ????????????Excel.Range?rng?=???
  • ????????????????(Excel.Range)ws.Rows[LastBoldedRow,?Type.Missing];??
  • ????????????rng.Font.Bold?=?false;??
  • ????????}??
  • ????}??
  • ????//?Store?away?the?new?row?number???
  • ????//?for?next?time.??
  • ????LastBoldedRow?=?rngCell.Row;??
  • }??
  • 例子中的workbook通過(guò)SheetSelectionChange事件監(jiān)聽(tīng)器調(diào)用BoldCurrentRow方法。

    ?

    下面的代碼verifies that the new selection is within the correct range using the?Intersect?method ofthe?Application?object

    ?

    [csharp]?view plaincopy
  • //?C#??
  • protected?void?ThisWorkbook_SheetSelectionChange(??
  • ??System.Object?sh,?Excel.Range?Target)??
  • {??
  • ????//?Don't?forget?that?the?Intersect?method?requires??
  • ????//?thirty?parameters.??
  • ????if?(ThisApplication.Intersect(Target,???
  • ????????ThisApplication.get_Range("BoldSelectedRow",?Type.Missing),???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing,???
  • ????????Type.Missing,?Type.Missing,?Type.Missing,?Type.Missing)???
  • ????????!=?null)??
  • ????{??
  • ????????//?The?selection?is?within?the?range?where?you're?making??
  • ????????//the?selected?row?bold.??
  • ????????BoldCurrentRow((Excel.Worksheet)?sh);??
  • ????}??
  • }??
  • 4.3? Working with Ranges

    ?

    ????? 一旦你獲得了一個(gè)Range的引用,你能做什么呢?答案是: Endless,as you can imagine。下面介紹兩個(gè)典型的場(chǎng)景。

    4.3.1 Autimatically Filling Ranges

    自動(dòng)填充功能?? (AutoFill方法用于向一個(gè)范圍中填充遞增或者遞減的值)

    首先看一下:XlAutoFillType? 枚舉類型

    ?

    • l? xlFillDays
    • l? ?xlFillFormats
    • l? ?xlFillSeries
    • l? xlFillWeekdays,
    • l? xlGrowthTrend
    • l? ?xlFillCopy
    • l? ?xlFillDefault
    • l? ?xlFillMonths
    • l? ?xlFillValues
    • l? ?xlFillYears
    • l? xlLinearTrend

    ?

    ?

    [csharp]?view plaincopy
  • //?實(shí)現(xiàn)圖示自動(dòng)填充的C#代碼??
  • private?void?AutoFill()??
  • {??
  • ????Excel.Range?rng?=?ThisApplication.get_Range("B1",?Type.Missing);??
  • ????rng.AutoFill(ThisApplication.get_Range("B1:B5",?Type.Missing),???
  • ????????Excel.XlAutoFillType.xlFillDays);??
  • ???
  • ????rng?=?ThisApplication.get_Range("C1",?Type.Missing);??
  • ????rng.AutoFill(ThisApplication.get_Range("C1:C5",?Type.Missing),???
  • ????????Excel.XlAutoFillType.xlFillMonths);??
  • ???
  • ????rng?=?ThisApplication.get_Range("D1",?Type.Missing);??
  • ????rng.AutoFill(ThisApplication.get_Range("D1:D5",?Type.Missing),???
  • ????????Excel.XlAutoFillType.xlFillYears);??
  • ???
  • ????rng?=?ThisApplication.get_Range("E1:E2",?Type.Missing);??
  • ????rng.AutoFill(ThisApplication.get_Range("E1:E5",?Type.Missing),???
  • ????????Excel.XlAutoFillType.xlFillSeries);??
  • ?

    ?

    4.3.2 Searching Within Ranges

    Range類的Find方法允許你在Range中進(jìn)行搜索。當(dāng)然你也可以再Excel界面中使用Ctrl+F打開(kāi)搜索對(duì)話框,如下圖所示

    下表列出了Range.Find方法的參數(shù)

    What (required)

    Object

    The data to find; can be a string or any Excel data type.

    After

    Range

    The range after which you want the search to start (this cell won't be included in the search); if you don't specify this cell, the search begins in the upper-left corner of the range.

    LookIn

    XlFindLookin (xlValue, xlComments, xlFormulas)

    The type of information to be searched; cannot be combined using the Or operator.

    LookAt

    XlLookAt (xlWhole, xlPart)

    Determines whether the search matches entire cells, or partial cells.

    SearchOrder

    XlSearchOrder (xlByRows, xlByColumns)

    Determines the order for the search; xlByRows (the default) causes the search to go across and then down, and xlByColumns causes the search to go down and then across.

    SearchDirection

    XlSearchDirection (xlNext, xlPrevious)

    Determines the direction of the search; the default is xlNext.

    MatchCase

    Boolean

    Determines whether the search is case-sensitive.

    MatchByte

    Boolean

    Determines whether double-byte characters match only double-byte characters (True) or equivalent single-byte characters (False); only applies if you've installed double-byte support.

    下面還是通過(guò)一個(gè)例子來(lái)學(xué)習(xí)Range.Find的用法。首先貼圖:

    ?

    不難看出,我們要搜索apples。下面是其實(shí)現(xiàn)的代碼:

    ?

    [csharp]?view plaincopy
  • //?C#??
  • private?void?DemoFind()??
  • {??
  • ????//得到range對(duì)象??
  • ????Excel.Range?rng?=?ThisApplication.get_Range("Fruits",?Type.Missing);??
  • ????Excel.Range?rngFound;??
  • ???
  • ????//?Keep?track?of?the?first?range?you?find.??
  • ????Excel.Range?rngFoundFirst?=?null;??
  • ???
  • ????//?You?should?specify?all?these?parameters??
  • ????//?every?time?you?call?this?method,?since?they??
  • ????//?can?be?overriden?in?the?user?interface.??
  • ????rngFound?=?rng.Find("apples",?Type.Missing,???
  • ????????Excel.XlFindLookIn.xlValues,?Excel.XlLookAt.xlPart,???
  • ????????Excel.XlSearchOrder.xlByRows,?Excel.XlSearchDirection.xlNext,???
  • ????????false,?Type.Missing,?Type.Missing);??
  • ???
  • ????while?(rngFound?!=?null)??
  • ????{??
  • ????????if?(rngFoundFirst?==?null?)???
  • ????????{??
  • ????????????rngFoundFirst?=?rngFound;??
  • ????????}??
  • ????????else?if?(GetAddress(rngFound)?==?GetAddress(rngFoundFirst))??
  • ????????{??
  • ????????????break;??
  • ????????}??
  • ????????rngFound.Font.Color?=?ColorTranslator.ToOle(Color.Red);??
  • ????????rngFound.Font.Bold?=?true;??
  • ????????rngFound?=?rng.FindNext(rngFound);??
  • ????}??
  • }??
  • ?

    若要取消查找后的顯示效果:

    [csharp]?view plaincopy
  • //?取消查找結(jié)構(gòu)的顯示??
  • private?void?ResetFind()??
  • {??
  • ????Excel.Range?rng?=?ThisApplication.??
  • ????????get_Range("Fruits",?Type.Missing);??
  • ???
  • ????rng.Font.Color?=?ColorTranslator.ToOle(Color.Black);??
  • ????rng.Font.Bold?=?false;??
  • }??
  • ?

    -----------------------------------------華麗分割-----------------------------------

    OK,終于寫(xiě)完了。本文主要介紹了Excel的幾大對(duì)象,主要介紹的是一些API。后面將會(huì)通過(guò)實(shí)例,結(jié)合 VS2010,用C#來(lái)實(shí)現(xiàn)對(duì)Excel的操作。感謝閱讀。

    ?

    -------------------------------------------------------------------------------------

    本文的PDF版本下載:點(diǎn)此下載

    轉(zhuǎn)載于:https://www.cnblogs.com/gc2013/p/3934957.html

    總結(jié)

    以上是生活随笔為你收集整理的C#操作Excel(1)Excel对象模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    91精品久久久久久久99蜜桃 | 国产手机在线观看视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产福利网站 | 日韩网站在线免费观看 | 色婷婷国产精品一区在线观看 | 人人艹视频 | 久久久久久久久影院 | 国产在线观看99 | 午夜影院在线观看18 | 亚洲成av人片在线观看无 | 69国产盗摄一区二区三区五区 | 亚洲japanese制服美女 | 啪啪肉肉污av国网站 | 欧美激情视频一二三区 | 99国内精品久久久久久久 | 天天干婷婷 | 性日韩欧美在线视频 | av中文字幕不卡 | 日韩r级电影在线观看 | 黄色网www | 激情综合网婷婷 | 免费日韩一区二区三区 | 一区二区三区免费在线观看视频 | 国产一区视频免费在线观看 | 午夜影院先 | 日日摸日日爽 | av免费在线观看网站 | 欧美色精品天天在线观看视频 | 在线一区电影 | 国产va饥渴难耐女保洁员在线观看 | 在线91精品| 免费看成年人 | 欧美aaa一级 | 国产色在线 | 超碰97成人 | 欧洲高潮三级做爰 | av一级在线观看 | 婷婷六月天综合 | 精品91视频 | 亚洲一区在线看 | 国产婷婷精品 | 国产精品美女999 | 国产在线第三页 | 毛片基地黄久久久久久天堂 | 国产黄色在线网站 | 日韩网站一区 | 国产第一页在线播放 | 2021国产在线视频 | 成人福利在线 | 福利视频导航网址 | 国产精品中文字幕在线 | 久久九九精品久久 | 国产资源站 | 成人免费观看网址 | 91免费视频黄 | 九九久久国产 | 深爱开心激情网 | 一区二区精品视频 | 成年人在线 | www免费视频com━ | 美女视频免费精品 | 91福利在线观看 | 中日韩在线视频 | 欧美久久久久久 | 天天色天 | 日韩一区二区三区观看 | 欧美成亚洲 | 国产亚洲高清视频 | 日韩丝袜 | 国产大陆亚洲精品国产 | 国产精品成人一区二区三区 | 免费大片黄在线 | 欧美老少交| 午夜久久电影网 | 在线天堂中文www视软件 | 久久五月天综合 | 国产精品av免费在线观看 | 九九免费在线看完整版 | 精品国产a | 久久婷婷一区 | 免费久久片 | 久久久精选 | 中文字幕一区二区三区四区视频 | 在线一二三四区 | 免费视频网 | 国产精品入口66mio女同 | 97视频在线观看免费 | 久久精品www人人爽人人 | 精品1区2区3区 | 日韩精品在线播放 | 中文字幕一区二区三区精华液 | 欧美精品国产综合久久 | 久久情爱| 亚洲成人一二三 | 国产99久久九九精品免费 | 国产中文字幕在线视频 | 国产中文字幕一区二区 | 久久九九久久精品 | 在线之家免费在线观看电影 | 亚洲精品男人的天堂 | 日本韩国精品在线 | 在线精品视频免费播放 | 99精品在线视频观看 | 黄色av电影在线 | 亚洲天堂香蕉 | 欧美亚洲三级 | 亚洲自拍偷拍色图 | 久久国产精品色av免费看 | 最新午夜电影 | 亚洲日本va在线观看 | 欧美日韩另类在线 | 精品亚洲一区二区三区 | www.com操| 日韩欧美一区二区在线观看 | 国产私拍在线 | 国产日韩视频在线 | 日日夜夜天天射 | 91丨九色丨首页 | 91麻豆网站 | 中文字幕av免费 | 国产一区二区在线观看视频 | 色诱亚洲精品久久久久久 | 欧美日韩高清不卡 | 亚洲天天做 | 国内揄拍国产精品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产成人一区二区精品非洲 | 国产色综合天天综合网 | 久久激情婷婷 | 欧美一区二区三区四区夜夜大片 | 在线观看视频一区二区三区 | www激情com| 亚洲精品视频第一页 | 九九精品久久久 | 成人午夜电影网站 | 久久少妇| 久久国产电影院 | 色偷偷97| 黄色大全免费观看 | 狠狠干夜夜操天天爽 | 丁香六月激情婷婷 | 在线观看视频在线观看 | 黄色毛片视频 | 成人免费观看视频网站 | 国产精品永久 | 久久久久久国产精品久久 | 色资源中文字幕 | 99热精品国产一区二区在线观看 | 精品久久久久久久久久久院品网 | 国产 欧美 日韩 | 91精品国产91热久久久做人人 | 黄网站免费看 | 亚洲国内精品在线 | 欧美一区二区三区在线视频观看 | 日韩精品91偷拍在线观看 | 国产精久久久久久久 | 韩国av免费在线 | 欧美做受高潮1 | 99国产一区二区三精品乱码 | 六月丁香激情网 | 在线亚洲高清视频 | 中文字幕一区二区三 | 久久情侣偷拍 | 成人不用播放器 | 亚洲精品视频二区 | 看av在线 | 国产69精品久久久久99尤 | 人人插人人艹 | 欧美日韩高清免费 | 911国产精品| 天天干,夜夜操 | 99久久精品日本一区二区免费 | 99国产精品久久久久老师 | 色网站免费在线看 | 午夜影院先 | 黄色片免费在线 | 少妇bbb搡bbbb搡bbbb′ | 亚洲精品国产综合99久久夜夜嗨 | 亚洲精品网站在线 | 夜夜操狠狠干 | 日韩欧美大片免费观看 | www.夜色321.com | 日韩一区二区三区免费视频 | 国产精品99久久久久久小说 | 色婷婷www | 狠狠色狠狠色综合系列 | 国产精品久久久久久久午夜 | 国产专区日韩专区 | 国产精品精品国产色婷婷 | 国产淫片免费看 | 色综合久久久久久久久五月 | 国精产品满18岁在线 | 国产精品久久久久久久久蜜臀 | 欧美日韩成人一区 | 亚洲综合色婷婷 | 久久久国产一区二区三区四区小说 | 免费av大片| 久久久久久久久久久网 | 在线欧美最极品的av | 网站在线观看你们懂的 | www.香蕉视频 | 欧美日韩国产欧美 | 国产精品嫩草69影院 | 久久九九网站 | 国产高清不卡 | 日韩一区在线播放 | a在线v| av成人动漫在线观看 | 亚洲精品456在线播放乱码 | 麻花天美星空视频 | 久久黄色a级片 | 国产精品免费不卡 | 美女黄久久 | 韩日成人av | 在线视频 日韩 | 91视频免费观看 | 高潮毛片无遮挡高清免费 | 国产免费中文字幕 | 国产美女视频免费 | 天天曰天天曰 | 国产视频亚洲 | 久久久国产网站 | 在线免费观看视频一区 | 免费三级av | 日本久久中文 | 欧美激情视频在线免费观看 | 国产精品精品久久久久久 | 一区二区电影在线观看 | 欧美日韩高清在线观看 | 国产精品video爽爽爽爽 | 免费a v网站| 97视频播放 | 亚洲va综合va国产va中文 | 在线黄色av| 国产成人精品一区二区三区在线 | 国产日韩欧美视频 | 久久人操| 天天色成人 | 日韩精品在线一区 | 天天操天天色天天 | 99九九视频 | 在线观看视频黄 | 国产亚洲综合性久久久影院 | 日本不卡视频 | 国产精品久久久网站 | 国产亚洲字幕 | 久久视频 | 欧美另类人妖 | 人人狠狠| 碰超在线 | 中文字幕免费一区二区 | 中文一区在线观看 | 欧美日韩国产二区三区 | 免费看在线看www777 | 深爱激情开心 | 97精产国品一二三产区在线 | 国产999免费视频 | 免费在线观看视频一区 | 国产视频一区二区三区在线 | 久久久久日本精品一区二区三区 | 国产小视频在线看 | 日韩精品久久久免费观看夜色 | 一区二区三区免费播放 | 久久久久 | 丁香六月婷婷开心 | 黄色小说免费在线观看 | 成年人在线 | 日韩av电影网站在线观看 | 黄色特一级 | 五月婷婷六月丁香在线观看 | 久久久久北条麻妃免费看 | 美女视频黄是免费的 | 黄网站污| 国产亚洲精品久久久久久 | 911精品美国片911久久久 | 91视频观看免费 | 精品久久久成人 | 欧美性大战久久久久 | 久久在线观看视频 | 天天艹天天 | 在线成人观看 | 伊人久久精品久久亚洲一区 | 一区中文字幕电影 | 国产一区二区三区在线 | 久精品视频免费观看2 | 国产精品大尺度 | 天天操人人要 | 国产色爽 | www.人人干| 91欧美精品 | 欧美视频网址 | 草久久久久久 | 激情欧美一区二区免费视频 | 黄色网址a | 国产日韩欧美在线 | 免费观看91视频 | 日本最新中文字幕 | 欧美日韩中 | 男女激情麻豆 | 亚洲欧美国产精品久久久久 | 久久国产区 | 国产精品不卡在线 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 欧美性免费 | 中文字幕 在线 一 二 | 国产一区网 | 干亚洲少妇 | 天天操天天干天天爱 | 亚洲精品一区二区网址 | 99婷婷| 免费看黄在线 | 天天曰| 欧美一级片免费 | 国产又粗又猛又爽又黄的视频免费 | 久久国产福利 | 日日爱视频 | 欧美午夜久久久 | 中文字幕在线观看完整版电影 | 精品国产欧美一区二区三区不卡 | 全久久久久久久久久久电影 | 97超碰国产精品女人人人爽 | 在线免费观看一区二区三区 | 伊人五月天.com | 精品在线不卡 | 五月婷婷激情五月 | 久久亚洲私人国产精品va | 日韩有码第一页 | 99久久精 | 成人a在线 | 中文字幕视频观看 | 一本—道久久a久久精品蜜桃 | 射射射av| 欧美国产不卡 | 欧美在线1区 | 日韩免费电影在线观看 | 97超碰人人澡 | 日韩,精品电影 | 成人h动漫在线看 | 色综合婷婷久久 | 99久久精品国产亚洲 | 最近中文字幕在线 | 黄网站色欧美视频 | 成年免费在线视频 | 国产日韩精品一区二区 | 国产区欧美| 九九免费精品视频 | 亚洲最大的av网站 | 91av亚洲| 人人干人人添 | 91天天操| 免费成人短视频 | 久久精品国产精品亚洲精品 | 中文字幕色站 | 久久精品波多野结衣 | 天天操天天拍 | 婷婷中文字幕综合 | 久99久精品 | 黄色视屏免费在线观看 | 狠狠五月婷婷 | 色开心 | 91视频91蝌蚪| 国产精品入口麻豆 | 欧美色精品天天在线观看视频 | 欧美精品在线一区二区 | 一区二区视频在线观看免费 | 久久久久亚洲精品成人网小说 | 国产成人久久精品一区二区三区 | 日韩有码网站 | 五月天激情综合 | 国产生活一级片 | 免费看国产一级片 | 午夜精品一区二区三区视频免费看 | 久久国产精品小视频 | 久久艹久久 | 成人在线视频在线观看 | 国产网站在线免费观看 | 国产精品欧美日韩 | 欧美日韩91 | 亚洲精品欧洲精品 | 国产婷婷精品av在线 | 91麻豆精品91久久久久同性 | 国产中文字幕视频在线 | www.国产在线| 美国三级黄色大片 | 久久精品女人毛片国产 | 日韩av成人在线观看 | 国产在线观看地址 | av一级在线观看 | 中文字幕国产 | 一区二区三区免费网站 | 天天操 夜夜操 | 久久不卡日韩美女 | 一级片在线 | 久久精品波多野结衣 | 久久私人影院 | 色网站在线看 | 国内精品在线一区 | 中文电影网 | 91精品一区二区在线观看 | 免费网站在线 | 国产一级免费视频 | 久久免费视频这里只有精品 | 超碰人人99 | 日韩黄色免费看 | 探花视频网站 | 国产在线超碰 | 日韩视频一区二区 | 狠狠躁天天躁综合网 | 国产在线观看国语版免费 | 亚洲欧美少妇 | 欧美一级久久久久 | 黄av资源 | 国产精品成人a免费观看 | 91禁在线看| 成年人在线观看免费视频 | 免费av看片 | 最新高清无码专区 | 日韩大陆欧美高清视频区 | 欧美日韩性| 国产成人福利在线观看 | 日韩av中文字幕在线 | 久久99久久99久久 | 中文字幕专区高清在线观看 | 欧亚久久| 久久精品久久精品久久 | 欧美射射射 | 亚洲黄色免费在线看 | 亚洲视频h| av黄色免费在线观看 | 日韩中文在线播放 | 久久久久成人精品免费播放动漫 | 91精品啪在线观看国产 | 日韩高清在线一区二区三区 | avsex| 正在播放五月婷婷狠狠干 | 欧美成人xxx | 五月天婷亚洲天综合网精品偷 | 中文字幕av全部资源www中文字幕在线观看 | 国产日本亚洲 | 国产99久久精品 | 日韩欧美一区二区三区视频 | 国产97av | 日日躁夜夜躁xxxxaaaa | 国产精品久久久久久久久婷婷 | 精品少妇一区二区三区在线 | 欧美精品v国产精品v日韩精品 | 4p变态网欧美系列 | 91桃色免费观看 | 看污网站 | 欧美日本啪啪无遮挡网站 | 久久久久五月天 | 欧美日韩不卡一区二区三区 | 欧美午夜寂寞影院 | 成人黄色中文字幕 | 日韩三级.com | 亚洲一区久久 | 国产人成在线视频 | 九月婷婷人人澡人人添人人爽 | 日韩在线观看av | 国产黄色理论片 | 欧美亚洲成人免费 | 成人免费中文字幕 | 亚洲电影免费 | 亚洲黄色一级电影 | 国产69精品久久久久久 | 欧美日韩成人 | 五月婷婷视频在线 | 久久成人精品电影 | 成年人黄色免费视频 | 狠狠干夜夜爽 | 精品国产一区二区三区久久久久久 | 中文在线字幕免费观 | 国色综合 | 欧美精品久久久久久久 | 97色涩 | 国产精品免费在线播放 | 蜜桃视频在线观看一区 | 高清av在线免费观看 | 国产一区免费 | 日韩高清精品免费观看 | 伊人狠狠干 | 成人黄视频| 亚洲第一区在线播放 | 色婷婷在线播放 | 成片人卡1卡2卡3手机免费看 | 夜夜骑天天操 | 精品播放 | 欧美成人精品三级在线观看播放 | 国产高清视频在线观看 | 成人黄大片视频在线观看 | 五月开心网 | 激情综合婷婷 | 中文av在线天堂 | 99精品国产在热久久下载 | 人人看97| 欧美一区二区三区四区夜夜大片 | 日本在线观看一区二区三区 | 在线免费91| 亚洲综合小说电影qvod | 国产精品欧美日韩在线观看 | 久久综合9988久久爱 | 国产美女免费观看 | 欧美91视频| 天天操天天操天天操天天操天天操天天操 | 精品久久久久国产免费第一页 | 69xxxx欧美 | 黄色一及电影 | 伊人狠狠操 | 国内久久精品视频 | 在线小视频你懂的 | 国产日韩欧美视频 | 狠狠干夜夜操天天爽 | 亚洲综合最新在线 | 成人a在线| 国产日韩精品一区二区在线观看播放 | 天无日天天操天天干 | 91精品视频在线观看免费 | 四虎最新域名 | av色图天堂网 | 国产精品不卡在线播放 | 五月天网页 | 日韩成人免费在线 | 久久久久色 | 美女网站免费福利视频 | 国产一性一爱一乱一交 | 天干啦夜天干天干在线线 | 久久综合狠狠综合久久狠狠色综合 | 制服丝袜在线91 | 三上悠亚一区二区在线观看 | 操操操人人人 | 在线观影网站 | 四虎在线观看精品视频 | 久久视频免费观看 | 一级免费黄色 | 99re国产视频| 超碰在线97观看 | 日韩视频专区 | 久久久久久久久久久久久久电影 | 92精品国产成人观看免费 | 国色天香在线 | 亚洲热视频 | 国产在线视频一区二区 | 五月激情电影 | 精品日韩在线一区 | a视频免费看 | 91精品对白一区国产伦 | 久久精品精品 | 色偷偷888欧美精品久久久 | 99久久精品视频免费 | 成人一区二区在线观看 | 亚洲国产日韩av | 深夜福利视频一区二区 | 在线视频 亚洲 | 人人插人人舔 | 黄色福利网 | 成人午夜电影免费在线观看 | 国产中文字幕精品 | 国内精品久久久久久久久久 | 天天玩天天干 | 在线国产能看的 | 中文字幕成人一区 | 国产高清视频免费观看 | 日韩精品久久久久久中文字幕8 | 亚洲小视频在线观看 | 麻豆精品传媒视频 | 欧美性色综合 | 亚洲国产一区av | 人人看人人| 在线色资源 | 欧洲视频一区 | 国产精品视频免费观看 | 国产日韩欧美在线 | a一片一级 | 一级黄网 | 黄色大片国产 | 亚洲精品视频www | 黄污视频网站大全 | 99久e精品热线免费 99国产精品久久久久久久久久 | 国产人成在线观看 | 一区二区视频在线观看免费 | 亚洲精品视频www | 国产精品网站一区二区三区 | 国产91小视频| 91在线免费视频观看 | 亚洲狠狠婷婷综合久久久 | 亚洲精品久久久久久中文传媒 | 国产精品久久久久久久久久了 | 国产免码va在线观看免费 | 久久综合免费视频 | 美女av免费看 | 日韩激情精品 | 日韩1级片 | 亚洲成人影音 | 91视频电影| 四虎精品成人免费网站 | 久久高清免费视频 | 亚洲久草视频 | 欧美成人精品三级在线观看播放 | 国产精品久久久久久久99 | 99精彩视频在线观看免费 | 国产成人三级在线 | 久久日本视频 | 成人资源网| 国产伦理一区 | 在线成人免费电影 | 午夜美女视频 | 中文字幕视频在线播放 | 天堂av免费 | 午夜电影中文字幕 | 麻豆视频免费在线 | 久久免费在线观看 | 国产精品麻豆果冻传媒在线播放 | 欧美一区二区在线免费观看 | 久久久久女人精品毛片九一 | 久久手机免费视频 | 免费视频一级片 | 91精品国产三级a在线观看 | 日韩一级片观看 | 日韩一区二区三区观看 | 久久久国产电影 | 又黄又爽免费视频 | 国产中文字幕一区二区 | 99爱爱| 综合视频在线 | 在线观看中文字幕视频 | 成人97视频 | 夜色资源站国产www在线视频 | 亚洲免费一级电影 | 亚洲在线网址 | 五月婷婷导航 | 中文字幕在线视频网站 | 国产午夜精品一区二区三区四区 | 欧美贵妇性狂欢 | 欧美日韩不卡在线 | 精品亚洲成a人在线观看 | 亚洲三级精品 | 久久伊人精品天天 | 天海冀一区二区三区 | 国产精品18久久久 | 国产精品区二区三区日本 | 最近日本mv字幕免费观看 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 国产99久久久国产 | 在线不卡a | 97在线观看免费观看 | 黄色一级在线免费观看 | 啪啪小视频网站 | 狠狠色丁香久久婷婷综合丁香 | 久久99深爱久久99精品 | 日本久久久亚洲精品 | 久久久久久久久精 | 日韩精品一区二区在线观看视频 | av中文在线观看 | 色在线视频网 | 91pony九色丨交换 | 国产在线观看地址 | 日韩欧美在线视频一区二区三区 | 色哟哟国产精品 | 黄色在线观看网站 | 在线成人免费av | 亚洲综合成人专区片 | 久久久人人人 | 中文字幕在线观看一区二区三区 | 九九热精品视频在线播放 | 在线三级播放 | 在线国产日韩 | 成人黄色av网站 | 国产黄网站在线观看 | 欧美性生活免费 | 久久久久久国产精品 | 亚洲一级免费电影 | 国产福利一区二区在线 | 狠狠干婷婷 | 久久成人国产精品入口 | 国产精品一二 | 一区二区激情视频 | 99一级片 | 久久久久久久久久久国产精品 | 亚洲精品动漫在线 | 久久精品99国产精品亚洲最刺激 | 亚洲一级二级三级 | 经典三级一区 | 91人人干 | 久久精品国产一区 | 久久91网 | 最近中文字幕免费大全 | 成人午夜网 | 久操中文字幕在线观看 | 黄色在线看网站 | 九九热免费视频在线观看 | 国产一区二区精品91 | 香蕉视频91 | 88av视频 | 又黄又网站 | 国产精品大片免费观看 | 亚洲最大成人网4388xx | 成人a视频片观看免费 | 国产精品国产三级国产aⅴ无密码 | 黄色视屏在线免费观看 | 韩国av一区二区 | 99亚洲视频 | 97视频免费观看2区 亚洲视屏 | 精品超碰 | 亚洲黄电影| 久久99久久精品 | 国产韩国日本高清视频 | 欧美午夜a | 日韩字幕在线 | 日韩精品极品视频 | 日韩精品久久久久久久电影99爱 | 五月激情综合婷婷 | 日本高清免费中文字幕 | 激情视频亚洲 | 99久久国产免费,99久久国产免费大片 | 91精品免费在线视频 | 91精品国产92久久久久 | 国产 日韩 欧美 自拍 | 成人三级黄色 | 国产v亚洲v | 午夜在线观看影院 | 伊人久久一区 | 日韩综合一区二区三区 | 91中文字幕在线视频 | 91一区一区三区 | 97免费| 在线精品一区二区 | 精品视频免费久久久看 | 国内精品免费久久影院 | 亚洲精品国久久99热 | 97超碰人人模人人人爽人人爱 | 国产精品 视频 | 久草精品视频 | 综合久久网站 | 免费v片| 精品一区二区影视 | av一区二区三区在线观看 | 亚洲精选在线 | 91综合视频在线观看 | 91久色蝌蚪| 国产视频在线一区二区 | 四虎成人精品在永久免费 | 日韩精品久久久久久久电影竹菊 | 亚洲国产日韩av | 天天干天天操天天射 | 国产精品免费在线视频 | 久草在线中文视频 | 久草在线91 | 久草免费在线观看视频 | 亚洲经典在线 | 亚洲免费视频在线观看 | 人人澡av | 日韩av电影一区 | 久草影视在线观看 | 96久久久 | 热久久国产精品 | 久久九九国产精品 | 国产精品系列在线观看 | 最近中文字幕第一页 | av中文在线观看 | 亚洲欧美在线视频免费 | 337p西西人体大胆瓣开下部 | 国产精品视频永久免费播放 | av电影免费观看 | 色综久久| 精品视频成人 | 黄色软件视频网站 | 日韩av在线网站 | 在线视频精品 | 免费看国产视频 | 色综合人人 | 在线成人看片 | 九九热久久免费视频 | 亚洲色图 校园春色 | 日韩在观看线 | 日韩欧美电影网 | 人人爽人人香蕉 | 99精品国产兔费观看久久99 | 91丨九色丨高潮 | 黄色小视频在线观看免费 | 黄色三级久久 | 欧美日韩在线观看一区二区三区 | 视频在线观看入口黄最新永久免费国产 | 久久精品一二三区 | 特级西西444www大胆高清无视频 | 精品久久综合 | 麻豆国产视频 | 欧美国产91| 日韩一级电影网站 | 国产精品普通话 | 亚洲精品字幕 | 国产在线欧美 | 综合网天天色 | 日日夜夜添| 麻豆久久久 | 国产精品久久久久久超碰 | 日韩精品中文字幕在线观看 | 99视频精品 | 日韩视频免费在线观看 | 国产欧美精品一区二区三区四区 | 久久久久久久久久久综合 | 久久人人添人人爽添人人88v | 精油按摩av | 成人精品99| 欧美极度另类性三渗透 | 久久久国内精品 | 国产免费又黄又爽 | 欧美综合在线视频 | 久草精品在线 | 999亚洲国产996395 | 国产成人免费在线观看 | 国产亚洲欧美在线视频 | 精品电影一区 | 在线观看免费成人av | 亚洲视频综合在线 | 国产高清精 | 国产一区精品在线观看 | 久草| 日韩专区av | 狠狠狠色丁香婷婷综合久久88 | 亚洲精品黄网站 | 6080yy午夜一二三区久久 | 精品中文字幕在线观看 | 西西4444www大胆无视频 | 黄色a视频 | 右手影院亚洲欧美 | 日黄网站 | 偷拍精品一区二区三区 | 国产一级精品绿帽视频 | 香蕉看片| 欧洲成人av| 亚洲最大的av网站 | 91插插影库 | 日韩理论电影在线 | 综合色狠狠 | 丁香五香天综合情 | 亚洲高清国产视频 | 天天综合久久综合 | 亚洲人xxx| 国产伦精品一区二区三区… | 99精品免费视频 | 99在线精品观看 | 玖玖999| 成 人 黄 色 视频播放1 | 天天干天天操天天入 | 久久久久久高潮国产精品视 | 91精品国自产在线偷拍蜜桃 | 色婷婷狠狠操 | 中文字幕一区二区三区四区 | 久久久久人人 | 中文字幕激情 | 成人av手机在线 | 在线观看色视频 | 免费国产一区二区视频 | av成人免费 | 亚洲一区二区精品视频 | 热99久久精品 | 亚洲精品合集 | 黄色日本免费 | 西西4444www大胆视频 | www免费网站在线观看 | 国产无吗一区二区三区在线欢 | 91视频在线免费下载 | 91麻豆精品国产91久久久久久 | 成人性生交视频 | 超碰人人乐 | 精选久久| 欧美精品久久久久久久久久久 | 成年人视频在线免费观看 | 黄色av电影在线 | 国产一级高清视频 | 国产亚洲人 | 日韩在线激情 | 成人黄色大片在线免费观看 | 精品国产亚洲一区二区麻豆 | 中文字幕日韩av | 91一区二区在线 | 热久久电影 | 国产成人在线免费观看 | 91九色蝌蚪视频在线 | 成人av免费| 99久久er热在这里只有精品66 | 狠狠夜夜| 精品久久久久久亚洲 | 国产精品99久久久久 | 色综合久久88色综合天天 | 一区二区三区在线观看中文字幕 | 91在线91拍拍在线91 | 日本久久精品视频 | 天天夜夜操 | 黄污视频大全 | 黄网站色视频免费观看 | 五月激情丁香婷婷 | 国产亚洲免费观看 | 一级特黄aaa大片在线观看 | 久久tv视频 | 精品久久久久久久 | 亚洲视频456| 中文欧美字幕免费 | 亚洲最新合集 | 久久一区二 | 欧美成天堂网地址 | 黄色片视频免费 | 亚洲理论电影 | 国产精品久久 | 探花视频在线观看免费 | 免费在线观看成年人视频 | 日本激情动作片免费看 | 国产免费大片 | 国产精品久久伊人 | 91精品视频在线看 | 国产精品99久久久久久有的能看 | 狠狠88综合久久久久综合网 | 久久久久久久久久久高潮一区二区 | 国产专区在线播放 | 国产手机在线 | www.亚洲精品在线 | 免费手机黄色网址 | 天天操天天操天天操天天操天天操天天操 | 在线激情网 | 久久av中文字幕片 | 在线电影播放 | 久久久久高清 | 久久精品福利视频 | 右手影院亚洲欧美 | 亚洲精品国产精品国产 | 人人爽人人片 | 国产精品自在线拍国产 | 精品国产乱码久久久久久三级人 | 久久草 | 99久久久| 亚洲成年片 | 蜜臀精品久久久久久蜜臀 | 日躁夜躁狠狠躁2001 | 一区二区三区免费在线 | 天天爱天天 | 偷拍久久久 | 国产99久久九九精品 | 国产亚洲精品福利 | 亚洲国产97在线精品一区 | 97在线超碰| 中国精品少妇 | 区一区二区三在线观看 | 久久亚洲欧美 | 婷婷深爱五月 | 成人激情开心网 | 亚洲精品黄色在线观看 | 精品免费国产一区二区三区四区 | 韩国av免费观看 | 欧美一级久久久 | 欧洲精品视频一区二区 | www.国产毛片| 中文字幕资源在线观看 | 午夜性色| 久草视频在线免费看 | 又紧又大又爽精品一区二区 | 九色porny真实丨国产18 | 久久精品久久久久久久 | 国产在线看一区 | 91 在线视频播放 | 九九av| 欧美性视频网站 | 九色在线视频 | 27xxoo无遮挡动态视频 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日本爽妇网 | 福利在线看片 | 久久久久久久久毛片精品 | 精品国产一区二区三区久久久久久 | 99国产情侣在线播放 | 久久久久久久久久久久亚洲 | 天天干天天拍 | 在线草| 99久久精品国产系列 | 久久久久久国产精品免费 | 一级成人在线 | 在线观看成人网 | 成人午夜电影免费在线观看 | 久久麻豆视频 | 麻豆视频成人 | 国产午夜视频在线观看 | 精品国产乱码久久久久 | 99精品国产高清在线观看 | 人人澡超碰碰97碰碰碰软件 | avv天堂| 久久一区二区三区国产精品 | 国产精品四虎 | 日韩丝袜在线观看 | 不卡电影一区二区三区 | 中文字幕久久亚洲 | 91高清免费| 国产探花视频在线播放 | 久久精品在线免费观看 | .国产精品成人自产拍在线观看6 | 黄污网站在线 | 日韩av一区二区在线 | 人人插人人射 | 天天躁日日躁狠狠躁av麻豆 |