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

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

生活随笔

當(dāng)前位置: 首頁(yè) >

C#操作Excel文件(转)

發(fā)布時(shí)間:2025/3/20 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#操作Excel文件(转) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要:本文介紹了Excel對(duì)象、C#中的受管代碼和非受管代碼,并介紹了COM組件在.net環(huán)境中的使用。

  關(guān)鍵詞:受管代碼;非受管代碼;Excel對(duì)象;動(dòng)態(tài)連接庫(kù)
  引言

  Excel是微軟公司辦公自動(dòng)化套件中的一個(gè)軟件,他主要是用來(lái)處理電子表格。 Excel以其功能強(qiáng)大,界面友好等受到了許多用戶(hù)的歡迎。在設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),對(duì)于不同的用戶(hù),他們對(duì)于打印的需求是不一樣的,如果要使得程序中的打印功 能適用于每一個(gè)用戶(hù),可以想象程序設(shè)計(jì)是十分復(fù)雜的。由于Excel表格的功能強(qiáng)大,又由于幾乎每一臺(tái)機(jī)器都安裝了它,如果把程序處理的結(jié)果放到 Excel表格中,這樣每一個(gè)用戶(hù)就可以根據(jù)自己的需要在Excel中定制自己的打印。這樣不僅使得程序設(shè)計(jì)簡(jiǎn)單,而且又滿(mǎn)足了諸多用戶(hù)的要求,更加實(shí)用 了。那么用Visual C#如何調(diào)用Excel,如何又把數(shù)據(jù)存放到Excel表格中?本文就來(lái)探討上述問(wèn)題的解決辦法。

  Excel對(duì)象

  微軟的Excel對(duì)象模型包括了128個(gè)不同的對(duì)象,從矩形,文本框等簡(jiǎn)單的對(duì)象到透視表,圖表等復(fù)雜的對(duì)象.下面我們簡(jiǎn)單介紹一下其中最重要,也是用得最多的四個(gè)對(duì)象。

  (1) Application對(duì)象。Application對(duì)象處于Excel對(duì)象層次結(jié)構(gòu)的頂層,表示Excel自身的運(yùn)行環(huán)境。

  (2) Workbook對(duì)象。Workbook對(duì)象直接地處于Application對(duì)象的下層,表示一個(gè)Excel工作薄文件。

  (3) Worksheet對(duì)象。Worksheet對(duì)象包含于Workbook對(duì)象,表示一個(gè)Excel工作表。

  (4) Range對(duì)象。Range對(duì)象包含于Worksheet對(duì)象,表示Excel工作表中的一個(gè)或多個(gè)單元格。

 C#中的受管代碼和非受管代碼

  在.net公用語(yǔ)言框架內(nèi)運(yùn)行的程序?yàn)槭芄艽a。受管代碼在程序中所有類(lèi)型都受到嚴(yán)格檢 查,沒(méi)有指針,對(duì)內(nèi)存的管理完全由運(yùn)行系統(tǒng)控制。受控狀態(tài)下,編寫(xiě)程序更為容易,且更少出錯(cuò),我們可以花更多的時(shí)間在解決實(shí)際問(wèn)題上而不是在計(jì)算機(jī)語(yǔ)言問(wèn) 題上。相對(duì)而言,那些在.NET框架外運(yùn)行的程序?yàn)榉鞘芄艽a。比如:COM組件、ActiveX組件、Win32 API函數(shù)、指針運(yùn)算等。C#編程中在某些特定情況下,需要運(yùn)用非受管代碼,例如,要利用一個(gè)成熟的COM組件,或者調(diào)用一個(gè)API函數(shù),或者用指針去編 寫(xiě)實(shí)時(shí)/高效程序等。

  Visual C#中調(diào)用Excel的COM組件

  一個(gè).NET組件事實(shí)上是一個(gè).NET下的DLL,它包含的不僅是運(yùn)行程序本身,更重要的是包含這個(gè)DLL的描述信息(Meta Data,即元數(shù)據(jù)),而一個(gè)COM組件是用其類(lèi)庫(kù)(TLB)儲(chǔ)存其描述信息。這些COM組件都是非受管代碼,要在Visual C#中使用這些非受管代碼的COM組件,就必須把他們轉(zhuǎn)換成受管代碼的.NET組件。所以在用Visual C#調(diào)用Excel表格之前,必須完成從COM組件的非受管代碼到受管代碼的類(lèi)庫(kù)的轉(zhuǎn)換。

  1、將Excel的COM組件轉(zhuǎn)換為.NET組件

  在項(xiàng)目中打開(kāi)Add Reference對(duì)話框,選擇COM欄,之后在COM列表中找到"Microsoft Excel 9.0 Object Library"(Office 2000),然后將其加入到項(xiàng)目的References中即可。Visual C#.NET會(huì)自動(dòng)產(chǎn)生相應(yīng)的.NET組件文件,以后即可正常使用。

  這個(gè)轉(zhuǎn)換形成.NET組件不能單獨(dú)使用,它不過(guò)是以前的COM組件的一個(gè)外層包裝,在.NET中可以通過(guò)這個(gè)外層包裝去發(fā)現(xiàn)原來(lái)的COM組件并調(diào)用其相應(yīng)的界面函數(shù)。所以它必須與原來(lái)的COM組件一起起作用。

  2、Visual C#打開(kāi)Excel表格

  事實(shí)上,在C#中使用一個(gè)經(jīng)轉(zhuǎn)換的COM組件和使用任何一個(gè)其它.NET組件完全一樣。可以用new關(guān)鍵字創(chuàng)建一個(gè)經(jīng)轉(zhuǎn)換的COM組件,然后再像使用任何一個(gè)其它C#對(duì)象一樣使用這個(gè)組件對(duì)象。

  在轉(zhuǎn)換后的.NET組件中定義了一個(gè)命名空間Excel,在此命名空間中封裝了一個(gè)類(lèi)Application,這個(gè)類(lèi)和啟動(dòng)Excel表格有非常重要的關(guān)系,在Visual C#中,只需要下列三行代碼就可以完成打開(kāi)Excel表格的工作,具體如下:

Excel.Application excel = new Excel.Application ();//引用Excel對(duì)象
excel.Application.Workbooks.Add ( true );//引用Excel工作簿
excel.Visible = true ;//使Excel可視

  但此時(shí)的Excel表格是一個(gè)空的表格,沒(méi)有任何內(nèi)容,下面就來(lái)介紹如何往Excel表格中輸入數(shù)據(jù)。

  3、往Excel表格中輸入數(shù)據(jù)

  在命名空間"Excel"中,還定義了一個(gè)類(lèi)"Cell",這個(gè)類(lèi)所代表的就是Excel表格中的一個(gè)單元格。通過(guò)給"Cell"賦值,從而實(shí)現(xiàn)往Excel表格中輸入相應(yīng)的數(shù)據(jù),下列代碼功能是打開(kāi)Excel表格,并且往表格輸入一些數(shù)據(jù)。

Excel.Application excel = new Excel.Application () ;
excel.Application.Workbooks.Add ( true ) ;
excel.Cells[ 1 , 1 ] = "First Row First Column" ;
excel.Cells[ 1 , 2 ] = "First Row Second Column" ;
excel.Cells[ 2 , 1 ] = "Second Row First Column" ;
excel.Cells[ 2 , 2 ] = "Second Row Second Column" ;
excel.Visible = true ;

?

 4、實(shí)例

  下面實(shí)例在C#中連接Oracle數(shù)據(jù)庫(kù)(Name),從表(TableName)中讀取數(shù)據(jù),并寫(xiě)入Excel。

string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
 OleDbConnection cn=new OleDbConnection (cnString);
 cn.Open ();
 try
 {
  string s="select * from Name.TableName";
  OleDbCommand cmd=new OleDbCommand (s,cn);
  OleDbDataReader dr=cmd.ExecuteReader ();
  Excel.Application xlApp = new Excel.Application();
  if(xlApp==null){MessageBox.Show ("Can't open Excel!");return;}
  xlApp.Application .Workbooks .Add (true);
  int row=2,fieldcount;
  fieldcount=dr.FieldCount ;
  for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
  while (dr.Read ())
  {
   for(int col=0;col<fieldcount;col++)
    xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
    row++;
  }
  xlApp.Visible =true;
  xlApp=null;
 }
 catch(Exception ex ){MessageBox.Show (ex.Message );}
 finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}
}

  5、安裝一個(gè)使用COM組件的.net程序

  如果要將這樣的程序安裝運(yùn)行在另一臺(tái)機(jī)器上,那么除了安裝運(yùn)行程序外,還做三件事。

  首先,是安裝.NET運(yùn)行系統(tǒng)。因?yàn)槿魏我粋€(gè).NET程序都不能離開(kāi).NET運(yùn)行系統(tǒng)去獨(dú)立運(yùn)行。

  其次,所調(diào)用的COM組件必須要安裝在目標(biāo)機(jī)器上。本例中大多數(shù)目標(biāo)機(jī)器上都裝有Microsoft Office的Excel,一般不會(huì)有這個(gè)問(wèn)題。但如果是另一個(gè)用戶(hù)自定義的COM組件,那么這個(gè)COM組件在運(yùn)行.NET程序之前必須先安裝好。

  最后,轉(zhuǎn)換后的.NET組件DLL文件要安裝在目標(biāo)機(jī)器上。因?yàn)?NET組件不需要在Windows ReGIStry中注冊(cè),所以最簡(jiǎn)單的方法是將.NET組件DLL文件拷貝到運(yùn)行程序目錄下。如果此.NET組件被多個(gè).NET程序共享,可以將其安裝在.NET公用組件區(qū)中,從而可被任何一個(gè).NET組件使用。只有當(dāng)一個(gè).NET組件參與了事務(wù)處理時(shí),才需要將它注冊(cè)為一個(gè)COM+組件。因?yàn)?NET仍然用傳統(tǒng)的COM+機(jī)制來(lái)處理事務(wù)的提交、回滾等。

  小結(jié)

  通過(guò)以上討論,我們知道了在C#中,如何使用Excel的COM組件。需要注意的是,Excel對(duì)象包含的許多內(nèi)容我們沒(méi)有介紹,在使用過(guò)程中需要我們不斷學(xué)習(xí)。也使我們了解了在C#中如何使用COM組件。

  參考文獻(xiàn):

  [1] 劉洪成 C#高級(jí)編程 清華大學(xué)出版社 2003.7工作 187~200



====================================================================================


標(biāo)題? C#操作Excel(導(dǎo)入導(dǎo)出)???? 選擇自 lovelyxc 的 Blog
關(guān)鍵字? C#操作Excel(導(dǎo)入導(dǎo)出)
出處?
?

前些日子,有很多朋友說(shuō)需要C#導(dǎo)出到Excel的代碼,現(xiàn)共享給大家

/// <summary>
??/// 讀取Excel文檔
??/// </summary>
??/// <param name="Path">文件名稱(chēng)</param>
??/// <returns>返回一個(gè)數(shù)據(jù)集</returns>
??public DataSet ExcelToDS(string Path)
??{
???string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
???OleDbConnection conn = new OleDbConnection(strConn);
???conn.Open();?
???string strExcel = "";??
???OleDbDataAdapter myCommand = null;
???DataSet ds = null;
???strExcel="select * from [sheet1$]";
???myCommand = new OleDbDataAdapter(strExcel, strConn);
???ds = new DataSet();
???myCommand.Fill(ds,"table1");??
???return ds;
??}

/// <summary>
??/// 寫(xiě)入Excel文檔
??/// </summary>
??/// <param name="Path">文件名稱(chēng)</param>
??public bool SaveFP2toExcel(string Path)
??{
???try
???{
????string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
????OleDbConnection conn = new OleDbConnection(strConn);
????conn.Open();?
????System.Data.OleDb.OleDbCommand cmd=new OleDbCommand ();
????cmd.Connection =conn;
????//cmd.CommandText ="UPDATE [sheet1$] SET 姓名='2005-01-01' WHERE 工號(hào)='日期'";
????//cmd.ExecuteNonQuery ();
????for(int i=0;i<fp2.Sheets [0].RowCount -1;i++)
????{
?????if(fp2.Sheets [0].Cells[i,0].Text!="")
?????{
??????cmd.CommandText ="INSERT INTO [sheet1$] (工號(hào),姓名,部門(mén),職務(wù),日期,時(shí)間) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+
???????fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+
???????"','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')";
??????cmd.ExecuteNonQuery ();
?????}
????}
????conn.Close ();
????return true;
???}
???catch(System.Data.OleDb.OleDbException ex)
???{
????System.Diagnostics.Debug.WriteLine ("寫(xiě)入Excel發(fā)生錯(cuò)誤:"+ex.Message );
???}
???return false;
??}

這種方法目前最有效,如果有不明白的地方可以來(lái)信交流

?


作者Blog:http://blog.csdn.net/lovelyxc/


====================================================================================


首先將excel.exe copy 到 ..\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin目錄下
利用.net 中帶的工具在命令提示符下執(zhí)行tlbimp excel.exe.這樣就不會(huì)因?yàn)槟愕腅xcel是xp或2000的不同要去找不同的*.olb文件,還有一點(diǎn)就是因?yàn)樵?000以后的版本中沒(méi)有了excel9.olb這個(gè)文件了。

通過(guò)執(zhí)行tlbimp excel.exe后我們會(huì)得到excel.dll文件。

只要有了這個(gè)Excel.dll,現(xiàn)在我們就能使用Excel的各種操作函數(shù)了。
下面就讓我們具體看看C#是如何使用這些東東吧。
1. 創(chuàng)建一個(gè)新Excel的Application:

Application exc = new Application();
if (exc == null) {
Console.WriteLine("ERROR: EXCEL couldn't be started");
return 0;
}

2. 讓這個(gè)工程可見(jiàn):
exc.set_Visible(0, true);
3. 獲取WorkBooks集合:
Workbooks workbooks = exc.Workbooks;
4. 加入新的WorkBook:
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet, 0);
5. 獲取WorkSheets集合:

_Worksheet worksheet = (_Worksheet) sheets.get_Item(1);
if (worksheet == null) {
Console.WriteLine ("ERROR in worksheet == null");
}
6. 給單元格設(shè)置變量:

?

Range?range1?=?worksheet.get_Range("C1",Missing.Value);
if?(range1?==?null)?
{
Console.WriteLine?(
"ERROR:?range?==?null");
}

const?int?nCells?=?1;
Object[]?args1?
=?new?Object[1];
args1[
0]?=?nCells;
range1.GetType().InvokeMember(
"Value",BindingFlags.SetProperty,?null,?range1,?args1);

?

例程:

?

using?System;
using?System.Reflection;?
using?System.Runtime.InteropServices;?
using?Excel;
class?Excel?{
public?static?int?Main()?{
Application?exc?
=?new?Application();
if?(exc?==?null)?{
Console.WriteLine(
"ERROR:?EXCEL?couldn't?be?started!");
return?0;
}

exc.set_Visible(
0,?true);?
Workbooks?workbooks?
=?exc.Workbooks;
_Workbook?workbook?
=?workbooks.Add(XlWBATemplate.xlWBATWorksheet,?0);?
Sheets?sheets?
=?workbook.Worksheets;
_Worksheet?worksheet?
=?(_Worksheet)?sheets.get_Item(1);
if?(worksheet?==?null)?{
Console.WriteLine?(
"ERROR:?worksheet?==?null");
}

Range?range1?
=?worksheet.get_Range("C1",?Missing.Value);
if?(range1?==?null)?{
Console.WriteLine?(
"ERROR:?range?==?null");
}

const?int?nCells?=?1;
Object[]?args1?
=?new?Object[1];
args1[
0]?=?nCells;
range1.GetType().InvokeMember(
"Value",?BindingFlags.SetProperty,?null,range1,?args1);
return?100;
}

}


現(xiàn)在我們來(lái)看看如何使用數(shù)組,他有些類(lèi)似于設(shè)置單元格。僅僅需要的改變只是args2[0] = array2;

const?int?nCell?=?5;
Range?range2?
=?worksheet.get_Range("A1",?"E1");
int[]?array2?=?new?int?[nCell];
for?(int?i=0;?i?<?array2.GetLength(0);?i++)?
{
array2[i]?
=?i+1;
}

Object[]?args2?
=?new?Object[1];
args2[
0]?=?array2;
range2.GetType().InvokeMember(
"Value",?BindingFlags.SetProperty,?null,?range2,?args2);


  大家需要了解Tlbimp這個(gè)工具的使用啊:)這個(gè)東東很有用,可以將普通Win32程序移植到.Net下面來(lái):)
如果操作的excel的格式很簡(jiǎn)單,就是一般的表的結(jié)構(gòu),那么其實(shí)操作EXCEL文件跟操作ACCESS數(shù)據(jù)庫(kù)文件的方法幾乎一樣。
需要注意的地方就是,1、程序會(huì)把EXCLE表中的第一行記錄作為列名;2、在使用EXCLE表的時(shí)候, 要在表名后面加上符號(hào)$

下面,我給你帖一段如何連接和讀取EXCEL文件的代碼吧:


?

DataSet?ds?=?new?DataSet();
OleDbDataAdapter?ad;


string?strDbPath?=?"./code.xls";
string?strConn?=?"Provider=Microsoft.Jet.OleDb.4.0;?Data?Source="+Server.MapPath(strDbPath)+";?Extended?Properties=Excel?8.0;";

OleDbConnection?Conn?
=?new?OleDbConnection(strConn);

Conn.Open();

string?strSQL?=?"select?*?from?[股票代碼$]";


ad?
=?new?OleDbDataAdapter(strSQL,?Conn);
ad.Fill(ds);

dg1.DataSource?
=?ds.Tables[0].DefaultView;??//dg1是一個(gè)DataGrid控件
dg1.DataBind();??//將EXCLE中股票代碼中的記錄棒定到DataGrid控件上



如果是在asp.net 下使用的話,要記得在? <system.web>中添加<identity impersonate="true"/>
否則就會(huì)出現(xiàn) “異常詳細(xì)信息: System.UnauthorizedAccessException: 拒絕訪問(wèn)“。



=======================================================

一、調(diào)用Excel的方法:一般情況下有兩種方法調(diào)用Excel:
1、 ?直接使用Delphi自帶的組件:在Form中分別放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
2、動(dòng)態(tài)創(chuàng)建Excel文件:首先創(chuàng)建 Excel 對(duì)象,使用ComObj,Excel2000:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );

二、導(dǎo)入數(shù)據(jù):在程序中,我們可以將查詢(xún)到的數(shù)據(jù)(SQL、Access、)導(dǎo)入到Excel中。例如:用Adoquery查詢(xún)Access中的數(shù)據(jù):
1、先查到所需的數(shù)據(jù);
2、導(dǎo)入:i:=1;
Adoquery.First;
? ? ? ? ? ? ? while not Adoquery.Eof do
? ? ? ? ? ? ? ? Begin
? ? ? ? ? ? ? ? ? ExcelApp.WorkSheets[1].Cells[i,1].Value := i;//添加序號(hào)的值
ExcelApp.WorkSheets[1].Cells[i,2].Value := Adoquery.FieldByName('cp_name').AsString;
? ? ? ? ? ? ? ? ? ……
? ? ? ? ? ? ? ? ? Inc(i);
Adoquery.Next;
? ? ? ? ? ? ? ? End;
當(dāng)然也可以把Adotable、Adoquery、Table、Query等組件的數(shù)據(jù)導(dǎo)入到Excel中。

三、Excel的處理:如果在你已知Excel格式的情況下,可以控制Excel,如下:
1、 顯示當(dāng)前窗口:ExcelApp.Visible := True;
2、 更改 Excel 標(biāo)題欄:ExcelApp.Caption := '標(biāo)題內(nèi)容';
3、 添加新工作簿:ExcelApp.WorkBooks.Add;
4、 設(shè)置第2個(gè)工作表為活動(dòng)工作表:ExcelApp.WorkSheets[2].Activate;
5、 給單元格賦值:ExcelApp.Cells[1,1].Value := '第一行第一列';
6、 設(shè)置指定列的寬度(單位:字符個(gè)數(shù)),以第一列為例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
7、 設(shè)置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
8、文字水平居中:Excelid.worksheets[1].Rows[1].HorizontalAlignment := $FFFFEFF4;
? 文字垂直居中:Excelid.worksheets[1].Rows[1].VerticalAlignment := $FFFFEFF4;
9、 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;
b. ExcelApp.ActiveSheet.Columns[1].Insert;
10、 刪除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;
b. ExcelApp.ActiveSheet.Columns[1].Delete; ?
11、合并單元格:ExcelApp.worksheets[1].range[A1:F8'].Merge(abc);注:要聲明變量abc: Variant;
12、豎行顯示文字:ExcelApp.worksheets[1].Cells.Item[1,1].Orientation:= xlVertical;
13、單元格加邊線:ExcelApp.worksheets[1].Range[A1:F8].Borders.LineStyle := 1;
14、在第8行之前插入分頁(yè)符:ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
15、在第4列之前刪除分頁(yè)符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
16、指定邊框線寬度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左 ? ?2-右 ? 3-頂 ? ?4-底 ? 5-斜( \ ) ? ? 6-斜( / )
17、拷貝操作:a.拷貝整個(gè)工作表:ExcelApplication1.ActiveSheet.Used.Range.Copy;
b.拷貝指定區(qū)域:ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
? ? ? ? ? ? ? ? ?c.從A1位置開(kāi)始粘貼:ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.從文件尾部開(kāi)始粘貼:ExcelApplication1.ActiveSheet.Range.PasteSpecial;
18、清除第一行第四列單元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
19、工作表保存:if not ExcelApp.ActiveWorkBook.Saved then
? ? ? ? ? ? ? ?ExcelApp.ActiveSheet.PrintPreview;
20、工作表另存為:ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );
21、放棄存盤(pán):ExcelApp.ActiveWorkBook.Saved := True;
22、關(guān)閉工作簿:ExcelApp.WorkBooks.Close;
23、退出 Excel:ExcelApp.Quit;
下面是有關(guān)打印頁(yè)面控制的語(yǔ)句:
? ?24、設(shè)置第一行字體屬性:ExcelApp.ActiveSheet.Rows[1].Font.Name := '隸書(shū)';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
ExcelApp.ActiveSheet.Rows[1].Font.size:=10;
25、進(jìn)行頁(yè)面設(shè)置:a.頁(yè)眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '報(bào)表演示';
b.頁(yè)腳:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '共&N頁(yè) 第&P頁(yè)';
? ? ? ? ? ? ? ? ? ? ?c.頁(yè)眉到頂端邊距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.頁(yè)腳到底端邊距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
? ? ? ? ? ? ? ? ? ? ?e.頂邊距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底邊距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
? ? ? ? ? ? ? ? ? ? ?g.左邊距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右邊距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
? ? ? ? ? ? ? ? ? ? ?i.頁(yè)面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.頁(yè)面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
? ? ? ? ? ? ? ? ? ? ?k.打印單元格網(wǎng)線:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
26、打印預(yù)覽工作表:ExcelApp.ActiveSheet.PrintPreview;
27、打印輸出工作表:ExcelApp.ActiveSheet.PrintOut;
對(duì)Excel的其他控制:
28、excel的多單元格合計(jì)功能:ExcelApp..Cells[ARow, ACol].Formula
:= '= SUM($+IntToStr(BeginRow) +:$ + IntToStr(EndRow) +');
注:聲明變量ARow, ACol: Integer;
29、打開(kāi)已經(jīng)存在的Excel文件: ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
? ?EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);


2004-3-4 16:27:14? ?
?查看評(píng)語(yǔ)???? ?

?2004-3-4 16:41:04? ? 舉例來(lái)說(shuō)

二、選擇excel表'按鈕,用于打開(kāi)EXCEL文件,其代碼如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路徑
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL應(yīng)用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打開(kāi)指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出現(xiàn)異常情況時(shí)關(guān)閉
ExcelApplication1.Quit;showmessage('請(qǐng)選擇EXCEL電子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1與Eexcelapplication1建立連接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1與Excelworkbook1建立連接
//開(kāi)始從EXCEL中取數(shù),放到stringgrid1中,取完數(shù)后關(guān)閉EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
//將第一條數(shù)據(jù)賦給編輯框
edit2.text:=stringgrid1.Cells[1,1];
edit1.text:=stringgrid1.Cells[2,1];
edit3.text:=stringgrid1.Cells[3,1];
edit4.text:=stringgrid1.Cells[4,1];
edit5.text:=stringgrid1.Cells[5,1];
exit;
end;
end;
end;

三、'下一條記錄'按鈕,完成記錄向下移動(dòng),代碼如下:
procedure TForm1.Button2Click(Sender: TObject);
var x:integer;
begin
x:=stringgrid1.row+1;
if x<> stringgrid1.RowCount then
begin
stringgrid1.row:=stringgrid1.row+1;
label1.caption:=inttostr(x);
edit2.text:=stringgrid1.Cells[1,x];
edit1.text:=stringgrid1.Cells[2,x];
edit3.text:=stringgrid1.Cells[3,x];
edit4.text:=stringgrid1.Cells[4,x];
edit5.text:=stringgrid1.Cells[5,x];
exit;
end
else
showmessage('已到第一條記錄!');
end;
四、'上一條記錄',完成記錄上移,代碼如下:
var x:integer;
begin
x:=stringgrid1.row-1;
if x<>0 then
begin
stringgrid1.row:=stringgrid1.row-1;
label1.caption:=inttostr(x);
edit2.text:=stringgrid1.Cells[1,x];
edit1.text:=stringgrid1.Cells[2,x];
edit3.text:=stringgrid1.Cells[3,x];
edit4.text:=stringgrid1.Cells[4,x];
edit5.text:=stringgrid1.Cells[5,x];
exit;
end
else
showmessage('已到最后一條記錄!');
end;
五、stringgrid中上下移動(dòng)時(shí)代碼:
procedure TForm1.StringGrid1Click(Sender: TObject);
var i:integer;
begin
i:=stringgrid1.Row;
label1.caption:=inttostr(i);
edit1.text:=stringgrid1.Cells[2,i];
edit2.text:=stringgrid1.Cells[1,i];
edit3.text:=stringgrid1.Cells[3,i];
edit4.text:=stringgrid1.Cells[4,i];
edit5.text:=stringgrid1.Cells[5,i];
end; ?

?2004-3-4 16:45:24? ? 圖片插入到EXCEL中

uses:clipbrd
function
begin
var
?MyFormat:Word;
?AData:THandle; ? ? ?//臨時(shí)句柄變量。
?APalette:HPALETTE; ?//臨時(shí)變量。
?Stream1:TMemoryStream;//TBlobStream
?xx:tbitmap;
? ? ? ? ? ?Stream1:= TMemoryStream.Create;
? ? ? ? ? ?TBlobField(query.FieldByName('存儲(chǔ)圖片的字段')).SaveToStream(Stream1);
? ? ? ? ? ?Stream1.Position :=0;
? ? ? ? ? ?xx:=tbitmap.Create ;
? ? ? ? ? ?xx.LoadFromStream(Stream1);
? ? ? ? ? ?xx.SaveToClipboardFormat(MyFormat,AData,APalette);
? ? ? ? ? ?ClipBoard.SetAsHandle(MyFormat, AData);
? ? ? ? ? ?myworksheet1.Range['g3','h7'].select;//myworksheet1是當(dāng)前活動(dòng)的sheet頁(yè)
? ? ? ? ? ?myworksheet1.Paste;
end;

============================================================

各位兄弟:讀取EXCEL數(shù)據(jù)是有的麻煩,經(jīng)過(guò)研究,已搞掂,C#的代碼如下,至于寫(xiě)數(shù)據(jù)則較簡(jiǎn)單: ?
? Excel.ApplicationClass ? excel=new ? Excel ? .ApplicationClass ? (); ?
? excel.Workbooks ? .Add(path);//打開(kāi)麻煩,增加一個(gè)較好處理 ?
? Excel.Worksheet ? worksheet=(Excel.Worksheetexcel.Worksheets.get_Item ? (1); ?
? for(int ? i=1;i<=row;i++) ?
? { ?
? Excel.Range ? r=worksheet.get_Range ? ("A"+i.ToString ? (),"A"+i.ToString ? ()); ?
? r.Select ? (); ?
? labcellname.Text ? =excel.ActiveCell.Text ? .ToString ? ().Trim ? (); ?
? Application.DoEvents ? (); ?
? labnum.Text ? =i.ToString ? (); ?
? Application.DoEvents ? (); ?
? } ?
? excel.Quit ? ();

?

?

?

?

?

?

C#操作Excel的方法

一. 直接調(diào)用COM組件
(如excel 2003)引用COM組件,添加excel的com對(duì)象Microsoft Excel 11.0 Object,然后在引用中可以看到
Microsoft.Office.Core,Excel,VBIDE三個(gè)對(duì)象。此時(shí)在程序中需要引入:

using System.Reflection;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;

基本的操作方式:
?? Application excel = new ApplicationClass();
??????????????? excel.Visible = false;
??????????????? Workbook wb = excel.Workbooks._Open(modelFile, Missing.Value, Missing.Value, Missing.Value, Missing.Value
??????????????????? , Missing.Value, Missing.Value, Missing.Value, Missing.Value
??????????????????? , Missing.Value, Missing.Value, Missing.Value, Missing.Value);

??????????????? Worksheet xSheet = (Worksheet)wb.Sheets[1];

??????? //Sheets sts = wb.Worksheets;
??????? //_Worksheet st = (_Worksheet)sts.get_Item(1);
??????? //st.Cells[3, 5] = "111"; //直接在cell上寫(xiě)值
??????? //st.Cells[2, 5] = "hahaha";

??????????????? Range range = xSheet.get_Range("A3", "H3");
??????????????? object[] objLines = { a200.Date, a200.PreviousClosePrice, a200.OpenPrice, a200.High, a200.Low, a200.Close, a200.Change, a200.ChangeRate };
??????????????? range.set_Value(Missing.Value, objLines);

??????????????? wb.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange,
??????????????????? Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

??????????????? //wb.Close(false, Missing.Value, Missing.Value);

//以下步驟必須進(jìn)行,否則Excel在進(jìn)程里不能自動(dòng)釋放
??????????????? NAR(range);
??????????????? NAR(xSheet);
??????????????? wb.Close(false, Missing.Value, Missing.Value);
??????????????? NAR(wb);????????????????????
??????????????? excel.Quit();
??????????????? NAR(excel);
??????????????? System.GC.Collect();


//以往的做法是將進(jìn)程里所以的Excel進(jìn)程Kill掉,不推薦!


private void NAR(object o)
??????? {
??????????? try
??????????? {
??????????????? System.Runtime.InteropServices.Marshal.ReleaseComObject(o);//強(qiáng)制釋放一個(gè)對(duì)象
??????????? }
??????????? catch { }
??????????? finally
??????????? {
??????????????? o = null;
??????????? }
??????? }

二. 通過(guò)OLEDB操作Excel
???? OleDbConnection conn = null;
??????????? try
??????????? {
????????????? //fileName 表示要操縱的Excel的文件路徑,如果excel不存在,現(xiàn)創(chuàng)建它,可以通過(guò)模版文件復(fù)制創(chuàng)建。
??????????????? string strConn;
??????????????? strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
??????????????? "Data Source=" + fileName + ";" +
??????????????? "Extended Properties='Excel 8.0;HDR=no;IMEX=0'";

??????????????? conn = new OleDbConnection(strConn);
??????????????? conn.Open();
??????????????? System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
??????????????? cmd.Connection = conn;
??????????????? //在Excel的Sheet1的A3到H3處插入數(shù)據(jù)
??????????????? cmd.CommandText = "insert into [Sheet1$A3:H3] (F1,F2,F3,F4,F5,F6,F7,F8) values('" + a200.Date + "','"
??????????????????? + a200.PreviousClosePrice + "','" + a200.OpenPrice + "','" + a200.High + "','" + a200.Low + "','" + a200.Close + "','" +
??????????????????? a200.Change + "','" + a200.ChangeRate + "')";
??????????????? cmd.ExecuteNonQuery();
??????????????? conn.Close();
??????????? }
??????????? catch (Exception e)
??????????? {
??????????????? if (conn != null)
??????????????????? conn.Close();
??????????????? Console.WriteLine(e.ToString());
??????????? }

注:
1)使用 Excel 工作簿時(shí),默認(rèn)情況下,區(qū)域中的第一行是標(biāo)題行(或字段名稱(chēng))。如果第一個(gè)區(qū)域不包含標(biāo)題,您可以在連接字符串的擴(kuò)展屬性中指定 HDR=NO。
如果您在連接字符串中指定 HDR=NO,Jet OLE DB 提供程序?qū)⒆詣?dòng)為您命名字段(F1 表示第一個(gè)字段,F2 表示第二個(gè)字段,依此類(lèi)推);
2)IMEX=1將所有讀入數(shù)據(jù)
看作字符,其他值(0、2)請(qǐng)查閱相關(guān)幫助文檔;3)如果出現(xiàn)“找不到可安裝的isam”錯(cuò)誤,一般是連接字符串錯(cuò)誤。

3、從excel文件讀取數(shù)據(jù)
string sql = "select * from [sheet1$]";
DoOleSql(sql,"test.xls");

4、更新excel文件中的數(shù)據(jù)
string sql = "update [sheet1$] set FieldName1='333' where FieldName2='b3'";
DoOleSql(sql,"test.xls");

5、向excel文件插入數(shù)據(jù)
string sql = "insert into [sheet1$](FieldName1,FieldName2,…) values('a',’b’,…)";
DoOleSql(sql,"test.xls");

6、刪除excel文件中的數(shù)據(jù):不提倡使用這種方法
7、對(duì)于非標(biāo)準(zhǔn)結(jié)構(gòu)的excel表格,可以指定excel中sheet的范圍
1)讀取數(shù)據(jù):string sql = "select * from [sheet1$A3:F20]";
2)更新數(shù)據(jù):string sql = "update [sheet1$A9:F15] set FieldName='333' where AnotherFieldName='b3'";
3)插入數(shù)據(jù):string sql = "insert into [sheet1$A9:F15](FieldName1,FieldName2,…) values('a',’b’,…)";
4)刪除數(shù)據(jù):不提倡
注:1)代碼根據(jù)需要可以自行修改;2)如果出現(xiàn)“操作必須使用一個(gè)可更新的查詢(xún)”錯(cuò)誤,可能sql語(yǔ)句中對(duì)excel文件中的“字段”引用有錯(cuò)誤,或?qū)xcel文件不
具有“修改”權(quán)限;3)如果出現(xiàn)“不能擴(kuò)充選定范圍”錯(cuò)誤,可能是對(duì)excel文件引用的“范圍”有錯(cuò)誤。

轉(zhuǎn)載于:https://www.cnblogs.com/net-study/p/3708558.html

總結(jié)

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

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

免费看国产视频 | 欧美激情视频一二区 | 亚洲精品在线观看的 | 亚洲精品在线一区二区 | 婷婷国产在线 | 国产精品99久久久久久久久 | 国产精品一区二区久久国产 | 国产999在线| 欧美精品中文在线免费观看 | 久久精品久久精品久久精品 | 波多野结衣在线视频一区 | 精品久久精品 | 欧美日韩3p | a级国产乱理伦片在线观看 亚洲3级 | 视频高清| 开心婷婷色 | 国产91在线观 | 亚洲精品在线免费观看视频 | 黄色app网站在线观看 | 天天插伊人 | 国产精品女同一区二区三区久久夜 | 91亚洲精品久久久久图片蜜桃 | 综合网欧美 | 欧美日韩免费一区 | 日韩av免费观看网站 | 黄色软件视频网站 | 国产在线p| 激情图片qvod| 超级碰99 | 国产亚洲综合精品 | 久色网| 91精品国产高清自在线观看 | 天天干天天拍天天操 | 亚洲伦理一区 | 国产一区二区在线播放视频 | 91看片在线 | 国产精品12| 免费黄色特级片 | 国产成人精品av在线观 | 日日爱999 | 99久久精品免费一区 | 国产精品成人久久久久久久 | 久久久精品一区二区三区 | 国产精品美女在线 | 国产午夜精品久久久久久久久久 | www.黄色 | 超碰公开97| 久久久久久久国产精品视频 | 99精品一区二区 | 美女久久| 丁香婷五月 | 国产午夜精品久久久久久久久久 | 亚洲免费观看视频 | 免费色视频网址 | 久久爱综合 | 深夜国产在线 | 国产精品精品久久久 | 99在线观看免费视频精品观看 | 2000xxx影视| 久久免费黄色 | 国产精品一区二区电影 | 欧美激情xxxx性bbbb | 欧美一级片在线免费观看 | 久久免费视频这里只有精品 | 天天综合区 | 久久露脸国产精品 | 亚洲欧美日韩一级 | 国产成人99av超碰超爽 | 亚洲国产午夜 | 在线日韩视频 | av一本久道久久波多野结衣 | 日韩videos高潮hd | 99色亚洲 | 国产免费午夜 | 婷婷激情5月天 | 日韩成人精品在线观看 | 亚洲欧洲精品在线 | 综合久久久久久久 | 综合久久五月天 | 日韩成人欧美 | 国产一级二级三级视频 | 六月色播| 看国产黄色片 | 成人va天堂 | 99这里有精品 | 色精品视频 | 免费在线观看av网站 | 午夜精选视频 | 97超级碰碰碰视频在线观看 | 免费看片网址 | 成人免费视频观看 | 日韩美在线 | 欧美一级欧美一级 | 久日视频| 五月天狠狠操 | 午夜国产一区二区 | 99久久99久久精品国产片果冰 | 7777精品伊人久久久大香线蕉 | 日本巨乳在线 | 欧美亚洲一区二区在线 | 国产精品手机看片 | 五月婷婷黄色 | 97色免费视频| 中文字幕资源在线观看 | 精品国产伦一区二区三区观看方式 | 99久热在线精品 | 在线观看一 | 黄网站免费大全入口 | 国产精品视频全国免费观看 | 色婷婷久久久综合中文字幕 | 国产原创在线观看 | 欧美少妇的秘密 | www久| 狠狠的干狠狠的操 | av在线网站大全 | 天天干天天拍天天操 | 五月天婷婷在线播放 | 成人av片免费观看app下载 | 国内一级片在线观看 | 久久日本视频 | 黄色大片免费播放 | 97视频总站 | 久久精品79国产精品 | 91亚洲国产成人久久精品网站 | 国产亚洲精品久久久久久久久久久久 | 亚洲欧美日韩国产精品一区午夜 | 国产精品久久久久久久久久久久午 | 欧美亚洲免费在线一区 | 人人爽人人爽人人爽学生一级 | 福利精品在线 | 国产精品国产三级国产aⅴ无密码 | 国产成人精品福利 | 免费福利小视频 | 偷拍福利视频一区二区三区 | 黄色小说在线免费观看 | 国产精品成人一区二区 | 麻豆传媒视频在线 | 天天爱天天操天天射 | 久久伊人精品天天 | 国产免费一区二区三区网站免费 | 9草在线 | 美女网站视频久久 | wwwwww色| 福利视频 | 国产精品日韩久久久久 | 香蕉在线观看视频 | 黄色电影网站在线观看 | 99精品视频免费 | 日韩精品一区二区三区在线视频 | 国产91小视频 | 久久综合狠狠综合 | japanesexxx乱女另类 | 国产免费成人 | 亚洲精品中文在线资源 | 亚洲三级性片 | av免费电影在线 | 999ZYZ玖玖资源站永久 | 中文字幕888 | 久久xxxx | 激情综合五月婷婷 | 五月综合在线观看 | 黄网av在线| 国产精品观看视频 | 亚洲精品视频免费在线 | 婷婷精品 | 中文字幕日韩免费视频 | 99热超碰 | 国产精品嫩草69影院 | 91在线国产观看 | 成人一区影院 | 亚洲1区 在线 | 午夜国产福利在线观看 | 豆豆色资源网xfplay | 毛片一级免费一级 | 亚洲欧美日韩精品久久奇米一区 | 制服丝袜在线91 | 在线观看国产91 | 三级av小说 | 久草在线免费播放 | 热久久影视 | 国产精品免费av | 欧美日韩免费视频 | 人人爽人人爱 | 激情影院在线 | 九九久| 丁香五月网久久综合 | 五月婷婷在线视频观看 | 99在线免费观看视频 | 男女视频91 | 久久1区 | 91热在线 | 久久在线一区 | 日韩高清精品免费观看 | 免费成人在线观看视频 | 亚洲欧美日韩精品久久奇米一区 | 国产一区欧美二区 | 探花视频在线版播放免费观看 | 三三级黄色片之日韩 | 丁香婷婷色| 国产精品久久久久999 | 欧美成年黄网站色视频 | 美女福利视频一区二区 | 免费观看的av网站 | 婷婷六月中文字幕 | 极品久久久 | 精品久久精品久久 | www.av小说| 日韩高清精品一区二区 | 久久九九精品久久 | 麻豆传媒视频观看 | 激情视频一区二区三区 | 国产精品久久久久久超碰 | 国产精品精品视频 | 欧美日韩1区 | 免费av在 | 一区二区国产精品 | 日韩美在线 | 久草久草久草久草 | 91在线看片 | 免费观看av | 成人黄色小说在线观看 | 国产一区二区高清 | 精品视频成人 | 99热在线看| 国产日韩视频在线观看 | 日韩综合视频在线观看 | 日韩大片免费在线观看 | 免费视频成人 | 国产精品久久久久久久久久新婚 | 免费在线观看一区 | 激情视频综合网 | 国产一级特黄电影 | 看片黄网站 | 日韩欧美高清 | 国产精品久久久久久久av电影 | 91cn国产在线 | 免费日韩电影 | 成人网色 | av中文国产| 成人午夜黄色影院 | 国产综合香蕉五月婷在线 | 菠萝菠萝在线精品视频 | 日韩激情在线视频 | 天天射天天操天天干 | 亚洲精品欧美专区 | 丁香色婷| 色欧美成人精品a∨在线观看 | 成人97视频一区二区 | 国产这里只有精品 | 91av短视频 | 国产成人精品一区二区在线观看 | 久久成人综合视频 | av中文字幕网 | 在线视频 国产 日韩 | av片在线看 | 久久高清免费 | 久草精品视频在线播放 | 九九九九色 | 成人午夜片av在线看 | 波多野结衣在线播放视频 | 国产无吗一区二区三区在线欢 | 九九久久影视 | 黄色大全免费观看 | 韩日精品中文字幕 | 黄色a在线观看 | 久久激情视频 久久 | 日韩羞羞 | 亚洲视频在线视频 | 免费成人av在线 | 日韩午夜小视频 | 99精品欧美一区二区三区黑人哦 | 中文字幕在线观看视频一区二区三区 | 国产黄色精品在线观看 | 日韩91精品| 六月丁香六月婷婷 | 久久亚洲影院 | 中文字幕精品一区久久久久 | 日韩无在线 | 亚洲 成人 一区 | 亚洲激情 欧美激情 | 视频 国产区 | 日韩av免费一区 | 日日干天天爽 | 亚洲经典视频 | 中文字幕乱码亚洲精品一区 | 热热热热热色 | 欧美亚洲成人免费 | 久久久精品综合 | 少妇bbbb| 成人av影视| 中文字幕在线第一页 | 欧美激情va永久在线播放 | 久久97精品 | www国产亚洲精品久久麻豆 | 国产精品免费久久久久 | 500部大龄熟乱视频 欧美日本三级 | 久久精品99国产精品 | 亚洲欧美日韩精品久久奇米一区 | 伊人久久婷婷 | 97福利在线| 亚洲国产精品va在线看 | 中文字幕免费国产精品 | 久久精品免费观看 | 天天干天天弄 | 91中文字幕一区 | 久久久久久国产精品 | 在线观看韩国av | 国产黄网站在线观看 | 999精品| 欧美在线视频免费 | 国产高清亚洲 | 最新高清无码专区 | 婷婷丁香导航 | 波多野结衣电影一区二区 | 成人一区在线观看 | 日韩精品综合在线 | 国产日韩欧美网站 | 久久精品国产免费 | 黄网站a | 欧美精品久久人人躁人人爽 | 在线观看蜜桃视频 | 久久精品美女视频网站 | 日韩中文字幕在线 | 成人福利在线播放 | 欧美一区二区三区特黄 | 国产精品都在这里 | 亚洲精品资源在线观看 | 一区 在线 影院 | 麻豆成人精品视频 | 欧美人交a欧美精品 | 五月婷婷婷婷婷 | 亚洲 综合 专区 | 国产免费不卡 | 国产精品乱码久久 | 亚洲毛片久久 | 丁香六月婷婷综合 | 国产成人一级电影 | 久久99亚洲热视 | 亚洲国产精品免费 | 成人午夜电影久久影院 | 精品视频免费久久久看 | 欧美一级片免费播放 | 国产精品99久久久精品 | 国产亚洲aⅴaaaaaa毛片 | 国产精品伦一区二区三区视频 | 国产xxxxx在线观看 | 波多野结衣精品 | 免费日韩电影 | 亚洲精选在线 | 免费久久网站 | 久久久99精品免费观看乱色 | 精品在线不卡 | 色视频在线免费观看 | 欧美一级欧美一级 | 美女黄网站视频免费 | 91在线观看视频 | 国产又黄又猛又粗 | 国产午夜三级一区二区三桃花影视 | 久久精品国产精品亚洲精品 | 青草视频在线看 | 超碰日韩在线 | 国产精品高潮呻吟久久av无 | 99久久影院 | 亚洲第一成网站 | 久久精品一区二区三区视频 | 天天干天天操av | 久久99久久99久久 | 日韩国产精品一区 | 午夜视频在线观看一区二区三区 | 91最新国产| 日韩在线观看视频在线 | 国产特黄色片 | 99国产精品一区二区 | 国产精品18久久久久久不卡孕妇 | 日韩 精品 一区 国产 麻豆 | 久久9精品 | 国产一区麻豆 | 成人免费看片网址 | 精品一区二区三区久久久 | 欧美日韩国产免费视频 | 91视频高清 | 欧美伦理一区二区三区 | 黄色成人小视频 | 欧美日韩不卡一区二区 | 激情五月综合网 | 天堂av免费观看 | 国产精品伦一区二区三区视频 | 久久久高清免费视频 | 99亚洲国产精品 | 最新日韩在线观看 | 亚洲精品无 | 午夜精品av | 精品国产免费av | 成人中心免费视频 | 久久美女高清视频 | 久久久国产一区二区三区 | 三级大片网站 | 91视频免费视频 | 玖玖精品视频 | 国产精品欧美精品 | 久久香蕉国产精品麻豆粉嫩av | 超碰国产人人 | 久久视频 | 成人免费xyz网站 | 精品久久久久一区二区国产 | 欧洲黄色片 | 欧亚日韩精品一区二区在线 | 国产成人精品福利 | 日韩在线免费高清视频 | 婷久久 | 成人av手机在线 | 五月天综合色激情 | 在线а√天堂中文官网 | 日本黄区免费视频观看 | 久久久久久久久久久久久久电影 | 亚洲高清色综合 | 婷婷丁香狠狠爱 | 亚洲精品综合一区二区 | 国产一区麻豆 | 91在线看视频免费 | 欧美色图亚洲图片 | 男女靠逼app | 国产精品一区二区三区电影 | 最近2019中文免费高清视频观看www99 | 亚洲成a人片77777kkkk1在线观看 | 国精产品999国精产品岳 | wwwwwww色| 九九热精品视频在线观看 | 国产精品久久三 | 亚洲精品网址在线观看 | 狠狠色丁婷婷日日 | 天天操天天操天天 | 国产精品免费大片视频 | 国产精品美女www爽爽爽视频 | 五月婷婷视频在线 | 日韩三级视频在线观看 | 欧洲精品视频一区二区 | 国产香蕉97碰碰碰视频在线观看 | 日韩视频中文字幕在线观看 | 中文字幕资源在线 | 操高跟美女 | 狠狠色丁香久久综合网 | 国产美女网站视频 | 国产精品理论片在线观看 | 欧美福利在线播放 | 免费看一级 | 久久97超碰 | 激情综合五月天 | 国产高清精 | 久久久精品 | 在线播放第一页 | 亚洲春色奇米影视 | 在线91观看| 91视频麻豆视频 | av先锋中文字幕 | 色偷偷97| 日韩欧美一区二区三区在线 | 欧美9999 | 久久五月天色综合 | 在线免费视频你懂的 | 国产精品黄网站在线观看 | 国产激情小视频在线观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 久久香蕉电影 | 色综合久久99| 欧美精品久久久久久久久久久 | 国产午夜精品久久久久久久久久 | 黄色一级在线观看 | 亚洲少妇xxxx | 国产精品一区久久久久 | 精品96久久久久久中文字幕无 | 粉嫩av一区二区三区四区 | 国产一级片免费观看 | 毛片一级免费一级 | 日韩电影一区二区三区在线观看 | www.狠狠| 欧美日韩一区二区在线 | 久久精品资源 | 黄色软件在线观看视频 | 午夜国产在线 | 久久麻豆精品 | 在线探花 | 天天在线免费视频 | 亚洲高清视频在线播放 | 成人a在线观看高清电影 | 91av社区 | 欧美成人精品在线 | av在线免费网 | 国产中文字幕三区 | 亚洲精品国产精品久久99 | 成人av资源网站 | 国产在线91精品 | 成人在线电影观看 | 最近更新好看的中文字幕 | 欧美激情另类文学 | 在线影院 国内精品 | 国产va饥渴难耐女保洁员在线观看 | 911亚洲精品第一 | 午夜精品久久久久久久爽 | 久久精品视频在线 | 欧美日韩不卡在线 | 天天操狠狠操网站 | 日本精a在线观看 | 91av欧美| 综合国产视频 | 91精品国产一区 | 久久成人午夜视频 | 久久电影国产免费久久电影 | 高潮久久久久久 | 狠狠色丁香婷婷综合欧美 | 成年人视频在线观看免费 | 韩国av电影在线观看 | 亚洲国产精品久久 | 色噜噜在线观看视频 | 欧美午夜性 | 国内精品久久久久久久影视麻豆 | 国内精品中文字幕 | www.天天成人国产电影 | 97在线视| 99国内精品久久久久久久 | 婷婷六月综合亚洲 | 久久日韩精品 | 日黄网站 | 丁香在线观看完整电影视频 | 国产亚洲一区二区在线观看 | 欧美激情综合五月 | 成人精品电影 | 超碰免费公开 | 激情综合网五月 | 99re在线视频观看 | 国产 在线 日韩 | 中文字幕999 | 精品人人爽 | 国产999精品久久久久久麻豆 | 在线国产激情视频 | 麻豆成人小视频 | 91大神在线看 | 91高清一区 | 五月天电影免费在线观看一区 | 欧洲视频一区 | 92精品国产成人观看免费 | 久久精视频 | 国产精品涩涩屋www在线观看 | 日韩久久影院 | 99久久精品国产免费看不卡 | 九九热中文字幕 | 69av免费视频| 中文字幕观看视频 | 久草视频在线资源 | 久久精品导航 | 欧美日本啪啪无遮挡网站 | 色婷婷婷 | 一区二区三区在线观看中文字幕 | 在线看的av网站 | 久久精品国产精品亚洲 | 国产一区二区三区在线 | 97超碰人人澡人人 | 999久久久久 | 国产精品97 | 最近高清中文字幕 | 欧美日韩3p | 一区二区在线不卡 | 玖玖在线资源 | 2023av在线 | 天天综合网~永久入口 | 久草在线高清视频 | 中文字幕一区二区三区精华液 | 丁香六月中文字幕 | 日韩中文字幕在线看 | 亚洲色综合 | 日韩一级电影在线观看 | 黄色小网站在线观看 | 成人午夜久久 | 天天操天天添 | 欧洲色综合 | 中文字幕在线观看视频一区二区三区 | 在线观看免费 | 日韩欧美xxxx | 中文字幕 国产视频 | 婷婷激情小说网 | 亚洲日本精品视频 | 亚洲精品字幕 | 日韩一区二区免费在线观看 | 午夜在线看片 | 麻花豆传媒mv在线观看网站 | 国产原创在线观看 | 五月天免费网站 | www日韩精品 | 99精品视频免费全部在线 | 日精品 | 最近中文字幕视频完整版 | 久久久精品 一区二区三区 国产99视频在线观看 | 日韩激情小视频 | 激情欧美在线观看 | 在线成人免费电影 | 超碰97在线资源站 | 欧美作爱视频 | 免费日韩在线 | 日日夜夜国产 | 九九九热精品免费视频观看网站 | 欧美一区三区四区 | 国产精品电影一区 | 五月婷婷六月综合 | 日本久久高清视频 | 天天操伊人 | 99精品视频免费看 | 久久精品99国产精品亚洲最刺激 | 99一级片| 久久国内视频 | 国产无遮挡又黄又爽在线观看 | 日韩高清www | 18久久久久久 | 操操操干干干 | 久久精品电影院 | 亚洲欧洲xxxx | 91精品国自产在线观看 | 国产精品福利在线观看 | 中文字幕文字幕一区二区 | 岛国大片免费视频 | 中文字幕传媒 | 一级做a爱片性色毛片www | 久久久久久久亚洲精品 | 九色91av| 99精品视频免费观看视频 | 国产综合小视频 | 国产视频在线观看一区 | 免费日韩一区二区三区 | 欧美色图亚洲图片 | 国产一级特黄电影 | 综合天堂av久久久久久久 | 国内毛片毛片 | 综合网伊人 | 国产精品综合久久久久久 | 欧美最新另类人妖 | 久草色在线观看 | 五月开心激情网 | 久久er99热精品一区二区 | 91视频三区| 国产成人一区二区三区在线观看 | 久草线 | 美女视频久久久 | 日韩高清在线不卡 | 中文字幕 成人 | 国产精品毛片一区二区三区 | 日本在线h | 日韩中文字幕免费在线观看 | 午夜电影久久 | 日韩素人在线观看 | 三级av免费 | 精品超碰 | 免费成人在线电影 | 成人免费共享视频 | 91| 免费涩涩网站 | 精品999在线观看 | 国产麻豆精品久久一二三 | 国产精品中文久久久久久久 | 日韩黄色一区 | 青青河边草免费观看完整版高清 | 久久超碰97 | 久久66热这里只有精品 | 青青草国产在线 | 免费在线成人 | 中文字幕 国产精品 | 日本在线成人 | 免费视频网 | 久久久精品国产一区二区电影四季 | 三上悠亚在线免费 | 欧美亚洲精品在线观看 | 视频一区二区视频 | 色婷婷88av视频一二三区 | 成人蜜桃视频 | 国产中文字幕一区 | 日日干干夜夜 | 日韩黄色一区 | 日韩在线观看视频中文字幕 | 国产在线第三页 | 一级黄色大片在线观看 | 成人免费在线观看av | 精品一区二区在线看 | 亚洲激情视频在线观看 | 午夜视频播放 | 亚洲黄色大片 | 色小说在线 | 麻豆小视频在线观看 | 欧美色图亚洲图片 | 国产日韩欧美中文 | 免费观看第二部31集 | 天天干亚洲 | 最新av在线播放 | 天天激情 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 久久人人添人人爽添人人88v | 久久精品99国产精品 | 午夜电影 电影 | 人人射人人 | 欧美成人高清 | 久草免费在线视频 | 成人午夜影院 | 国产美女被啪进深处喷白浆视频 | 久久久999 | 国产精品va最新国产精品视频 | 久久天天躁狠狠躁亚洲综合公司 | 国产精品刺激对白麻豆99 | 日本中文乱码卡一卡二新区 | 99久久网站 | 午夜精品影院 | 国产精品久久久久9999吃药 | 国产精品久久久久久久久久久久冷 | 日韩,精品电影 | 天天射天天射天天 | 国产一区二区在线观看视频 | 久久免费在线观看视频 | 精品成人在线 | 国产精品中文字幕在线播放 | 1024手机在线看 | 国产盗摄精品一区二区 | 成人影视免费 | 麻豆91网站 | 首页中文字幕 | 国产在线高清视频 | 夜色资源网 | 国产精品福利av | 日韩欧美在线综合网 | 国产精品国产三级国产不产一地 | 国产高清久久久久 | 久久久91精品国产一区二区三区 | 欧美日产一区 | 丁香九月婷婷 | av成人免费网站 | 久久国产精品久久久久 | 91免费在线视频 | 日本在线观看一区二区 | 一区二区视频在线观看免费 | 综合成人在线 | 亚洲九九九在线观看 | 婷婷网站天天婷婷网站 | 毛片网在线播放 | 久久久av免费 | 国产精品久久久久永久免费看 | 国产精品激情在线观看 | 亚洲高清视频在线 | 久久国产一区 | 日韩精品欧美专区 | 久久99亚洲精品久久久久 | 国产成人资源 | 四虎成人免费观看 | 一区二区三区四区五区在线 | 麻豆系列在线观看 | 日韩大片免费在线观看 | 91精品国产综合久久福利不卡 | 黄色免费网站下载 | 在线免费黄网站 | 久久香蕉国产精品麻豆粉嫩av | 97在线观看免费观看高清 | 天天操天天干天天 | 欧美日韩国产一二三区 | 91九色蝌蚪在线 | 亚洲福利精品 | 国产91欧美 | 日韩精品一区在线观看 | 狠狠狠狠狠狠狠狠 | 日韩,精品电影 | 国内外成人在线视频 | 国产精品黑丝在线观看 | 日韩欧美在线免费观看 | 处女av在线| 久草色在线观看 | 国内精品视频在线播放 | 91麻豆国产 | 久久视频一区二区 | 亚洲一区视频在线播放 | 在线播放一区二区三区 | 亚洲欧美国产视频 | 欧美成人影音 | 久人人 | 婷婷丁香国产 | 国产精品久久久久久久99 | 亚洲精品视频在线播放 | 99精品国产成人一区二区 | 国产91在 | 久久理论影院 | 中文字幕在线免费观看视频 | 国产高清在线观看av | 欧美日韩成人一区 | 黄色成品视频 | 色停停五月天 | 日韩a级免费视频 | 亚洲成人频道 | 婷婷在线视频 | 天天爽天天射 | 天堂av中文字幕 | 在线之家免费在线观看电影 | 欧美国产日韩在线观看 | 日韩91av| 探花视频网站 | 在线观看爱爱视频 | 欧美黄网站 | 男女激情免费网站 | 国产精品人成电影在线观看 | 日日日操操 | 91麻豆精品国产91久久久使用方法 | 国产在线播放一区二区 | 51久久成人国产精品麻豆 | 免费久草视频 | 91亚洲精品乱码久久久久久蜜桃 | 久久精品视频在线免费观看 | 久久99九九99精品 | 久久视频免费在线 | 国产中文字幕大全 | 色婷婷伊人 | 免费一级片在线 | 亚洲精品午夜久久久 | 永久免费的啪啪网站免费观看浪潮 | 蜜臀aⅴ国产精品久久久国产 | 国产亚洲精品美女久久 | 婷香五月 | 婷婷久草| 人人射| 五月综合久久 | 国产小视频在线免费观看 | 久精品视频免费观看2 | 中文字幕中文中文字幕 | 国产成人精品亚洲精品 | 国产小视频在线免费观看 | 狠狠狠色丁香综合久久天下网 | 色视频网址 | 国产白浆视频 | 毛片网站免费 | 久草视频在线看 | 人人超在线公开视频 | 国产精品岛国久久久久久久久红粉 | 中文字幕在线高清 | 国产精品夜夜夜一区二区三区尤 | 国产一级片免费视频 | 91精品啪在线观看国产81旧版 | 成人午夜剧场在线观看 | 国产精品人成电影在线观看 | 免费看片色 | 国产91全国探花系列在线播放 | 欧美大荫蒂xxx | 婷婷亚洲五月 | 国产精品久久久久久久妇 | 久久久久久久久久电影 | 九九久久国产 | 91一区二区三区久久久久国产乱 | 国产91全国探花系列在线播放 | 免费成人在线电影 | 91亚洲精品久久久久图片蜜桃 | 91在线视频免费播放 | 香蕉视频18 | 久久久www成人免费精品张筱雨 | 日韩中文字幕网站 | 精品国产乱码久久久久久浪潮 | 中文字幕在线视频一区 | 亚洲不卡123 | 97福利| 日韩精品在线看 | 亚洲高清国产视频 | 国产 日韩 欧美 在线 | 久久电影色 | 激情五月婷婷综合 | 午夜精品久久久 | 夜夜躁日日躁狠狠久久av | www.在线观看视频 | 国产精品美女www爽爽爽视频 | 在线国产视频观看 | 亚洲爱爱视频 | 波多野结衣一区二区三区中文字幕 | av国产在线观看 | 色综合天天综合 | 超碰人人在 | 超碰精品在线观看 | a级国产乱理伦片在线观看 亚洲3级 | 亚洲视频网站在线观看 | 日韩午夜网站 | 亚洲欧美婷婷六月色综合 | 日韩欧美在线视频一区二区三区 | 黄色最新网址 | 中文字幕视频免费观看 | 国产精品久久久一区二区三区网站 | 国产免费激情久久 | 999男人的天堂 | av中文字幕在线观看网站 | 欧美日韩激情视频8区 | 亚洲国产成人精品在线观看 | 国产中文在线视频 | 久插视频 | 91av视频免费在线观看 | 在线国产日韩 | 国产成人av网| 日韩理论在线 | 亚洲在线日韩 | 亚洲激情婷婷 | 欧美精品一区二区在线观看 | 国产一级精品在线观看 | 中文字幕精品久久 | 亚洲黄色三级 | 国产一区二区三区视频在线 | 国产视频一 | adn—256中文在线观看 | 国产精品麻豆果冻传媒在线播放 | 日韩视频免费在线 | 日韩国产精品久久久久久亚洲 | 中文字幕人成一区 | 欧美极品久久 | 91观看视频 | 亚洲激情一区二区三区 | 亚洲午夜大片 | 婷婷www | 99视频一区二区 | 91精品在线免费 | av在线电影播放 | 奇米影视四色8888 | 日韩精品不卡在线 | 亚洲国产欧美一区二区三区丁香婷 | 欧美一进一出抽搐大尺度视频 | 久久久久免费精品国产小说色大师 | 欧美激情xxxx性bbbb | 国产91在线免费视频 | 又黄又爽又色无遮挡免费 | 亚洲一区二区视频 | 五月天亚洲精品 | 丁香六月天 | 免费看的黄色录像 | 日韩影视在线观看 | 99国产情侣在线播放 | 一区二区三区三区在线 | 亚洲视频在线免费看 | 亚洲精品成人av在线 | 日韩性xxxx| 五月婷婷,六月丁香 | 91xav| 最新国产精品久久精品 | 久久久久久国产精品亚洲78 | 精品在线视频观看 | 在线成人性视频 | 玖玖在线免费视频 | 99热国产在线 | 黄色av在| 久久久久久高清 | 91精品国产福利在线观看 | 天天干,夜夜操 | 91尤物在线播放 | 亚洲h在线播放在线观看h | 精品在线播放 | 激情网五月婷婷 | 国产精品成人一区二区三区吃奶 | 亚洲精品在线观看视频 | 久久99精品国产麻豆宅宅 | 香蕉色综合| 国产一线二线三线性视频 | www.com.黄 | www国产亚洲 | 欧美日韩免费观看一区=区三区 | 美女免费视频一区 | 成人影片在线免费观看 | av免费观看在线 | 国产精品黄色在线观看 | 亚洲视频在线观看网站 | 中文在线免费一区三区 | 日韩亚洲在线 | 国产精品第一视频 | 在线看片中文字幕 | wwwwwww色| 国产爽妇网 | 亚洲最新视频在线播放 | 人人澡人人模 | 在线观看午夜av | 国产女v资源在线观看 | 婷婷色综合色 | 又黄又网站 | 国产无限资源在线观看 | 国产视频久久久 | 99热在线免费观看 | av女优中文字幕在线观看 | 二区三区在线视频 | 婷婷夜夜| 香蕉视频免费在线播放 | 97在线观看视频 | 狠狠狠狠狠操 | 久久精品国产免费观看 | 日韩精品中文字幕在线播放 | 激情网综合 | 中文在线www | 日韩一区二区三区高清免费看看 | 涩涩在线 | 日韩欧美电影在线 | 亚洲精品视频一 | 亚洲成人免费 | 日韩亚洲在线视频 | 久久福利国产 | 精品国产一区二区三区四区vr | 久久国产精品一区二区三区 | 99九九99九九九视频精品 | 久久久久亚洲精品成人网小说 | 久久久免费 | 在线视频免费观看 |