C#操作Excel

來源:互聯網
上載者:User

標籤:

在GIS資料處理中,經常遇到與Excel的互動,這裡進行簡單的總結。

Excel行列號就像是編輯中的二維資料群組,操作Excel相當於操作二維數組。遍曆、迴圈、取值、賦值……

1.添加引用

添加引用也有版本的問題,我們都知道每一代office除了有一個以年份命名的銷售名稱(2003、2007、2010等)外,還有一個類似於組建號的代號,是以數字遞增的。
office 2003:office 11
office 2007:office 12
office 2010:office 14(聽說13不吉利,沒有office 13)
office 2013:office 15

我添加的是14版,在office2013和office2010環境下測試可用。

using Microsoft.Office.Interop.Excel
2.認識對象

Excel物件模型包括了128個不同的對象,其中用得比較多的就四個:

(1) Application對象。Application對象處於Excel對象階層的頂層,表示Excel自身的運行環境。

(2) Workbook對象。Workbook對象直接地處於Application對象的下層,表示一個Excel工作薄檔案。

(3) Worksheet對象。Worksheet對象包含於Workbook對象,表示一個Excel工作表。

(4) Range對象。Range對象包含於Worksheet對象,表示Excel工作表中的一個或多個儲存格。

3.基本操作

一般在操作中,都不開這下面四個:

Excel.Application oApp;Excel._Workbook oWbook;Excel._Worksheet oWSheet;Excel.Range oRng;

然後建立Excel

//建立Excel對象oApp = new Excel.Application();oApp.Visible = true;//是否可見

 建立活頁簿、工作表

//建立一個新的活頁簿、工作表oWbook = (Excel._Workbook)(oApp.Workbooks.Add(Missing.Value));oWSheet = (Excel._Worksheet)oWbook.ActiveSheet;

  取值

//擷取儲存格的值sheet = ((Microsoft.Office.Interop.Excel.Range)oWSheet.Cells[1, 2]).Text;

  寫值

//設定某行某列的值,從1開始oWSheet.Cells[1, 1] = "First Name";oWSheet.Cells[1, 2] = "Last Name";

  設定格式

//設定多個儲存格格式oWSheet.get_Range("A1", "D1").Font.Bold = true;oWSheet.get_Range("A1", "D1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

  儲存

//儲存活頁簿 oWbook.Save();

  另存

oWbook.SaveAs(filePath + name, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

   

下面是一些常用的代碼:

1、 顯示當前視窗:ExcelApp.Visible := True;
2、 更改 Excel 標題列:ExcelApp.Caption := ‘標題內容‘;
3、 添加新活頁簿:ExcelApp.WorkBooks.Add;
4、 設定第2個工作表為使用中工作表:ExcelApp.WorkSheets[2].Activate;
5、 給儲存格賦值:ExcelApp.Cells[1,1].Value := ‘第一行第一列‘;
6、 設定指定列的寬度(單位:字元個數),以第一列為例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
7、 設定指定行的高度(單位:磅)(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行之前插入分頁符:ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
15、在第4列之前刪除分頁符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
16、指定邊框線寬度:ExcelApp.ActiveSheet.Range[ ‘B3:D4‘ ].Borders[2].Weight := 3;
1-左    2-右   3-頂    4-底   5-斜( \ )     6-斜( / )
17、拷貝操作:a.拷貝整個工作表:ExcelApplication1.ActiveSheet.Used.Range.Copy;
b.拷貝指定地區:ExcelApplication1.ActiveSheet.Range[ ‘A1:E2‘ ].Copy;
                 c.從A1位置開始粘貼:ExcelApplication1.ActiveSheet.Range.[ ‘A1‘ ].PasteSpecial;
d.從檔案尾部開始粘貼: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、放棄存檔:ExcelApp.ActiveWorkBook.Saved := True;
22、關閉活頁簿:ExcelApp.WorkBooks.Close;
23、退出 Excel:ExcelApp.Quit;
下面是有關列印頁面控制的語句:
   24、設定第一行字型屬性:ExcelApp.ActiveSheet.Rows[1].Font.Name := ‘隸書‘;
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、進行版面設定:a.頁首:ExcelApp.ActiveSheet.PageSetup.CenterHeader := ‘報表示範‘;
b.頁尾:ExcelApp.ActiveSheet.PageSetup.CenterFooter := ‘共&N頁 第&P頁‘;
                     c.頁首到頂端邊距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.頁尾到底端邊距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.頁面水平置中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.頁面垂直置中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
                     k.列印儲存格網線:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
26、預覽列印工作表:ExcelApp.ActiveSheet.PrintPreview;
27、列印輸出工作表:ExcelApp.ActiveSheet.PrintOut;
對Excel的其他控制:
28、excel的多儲存格合計功能:ExcelApp..Cells[ARow, ACol].Formula
:= ‘= SUM($+IntToStr(BeginRow) +:$ + IntToStr(EndRow) +‘);
註:聲明變數ARow, ACol: Integer;
29、開啟已經存在的Excel檔案: ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
   EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

空的時候,還是把它寫個類。

 

參考:http://www.cnblogs.com/seven-google/archive/2012/02/10/2344819.html

C#操作Excel

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.