[C#.Net] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全

  • 205165
  • 0
  • C#
  • 2013-05-24

[C#.Net] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全

Excel是相當好用的”傢絲”大部份的電腦都會安裝,用它來展現報表是相當方便;若是對方的電腦沒有安裝EXCEL,你想寫免安裝軟體,那也沒有關係,只要將你自己電腦中的EXCEL.EXE放進專案資料夾,再引用它。

第一步:加入EXCEL.EXE當參考,如同我所說的,你可以引用專案資料夾中的EXCEL.EXE,引用完後你就可以在方案總管看到Excel。

1

 

2

在物件瀏覽器中也可以見到Microsoft.Office.Interop.Excel

3

 

或者可以直接加入參考,兩種方法選一種來用

Snag-44

 

第二步:引用Microsoft.Office.Interop.Excel命名空間

using Microsoft.Office.Interop.Excel; 

第三步:引用Excel類別

//引用Excel Application類別
_Application myExcel = null; 
//引用活頁簿類別 
_Workbook myBook = null;
//引用工作表類別
_Worksheet mySheet = null;
//引用Range類別 
Range myRange = null;

 

第四步:建立一個新的Excel

//開啟一個新的應用程式
myExcel = new Microsoft.Office.Interop.Excel.Application();

 

第五步:快樂的使用Excel

//加入新的活頁簿 myExcel.Workbooks.Add(true);//停用警告訊息myExcel.DisplayAlerts = false;//讓Excel文件可見 myExcel.Visible = true;//引用第一個活頁簿myBook = myExcel.Workbooks[1];//設定活頁簿焦點myBook.Activate();//引用第一個工作表mySheet = (_Worksheet)myBook.Worksheets[1];//命名工作表的名稱為 "Array"mySheet.Name = "Cells";//設工作表焦點mySheet.Activate(); //用offset寫入陣列資料myRange = mySheet.get_Range("A2", Type.Missing);myRange.get_Offset(i, j).Select();myRange.Value2 = "'" + myData[i, j]; //用Cells寫入陣列資料myRange.get_Range(myExcel.Cells[2 + i, 1 + j], myExcel.Cells[2 + i, 1 + j]).Select();myExcel.Cells[2 + i, 1 + j] = "'" + myData[i, j]; //加入新的工作表在第1張工作表之後myBook.Sheets.Add(Type.Missing, myBook.Worksheets[1], 1, Type.Missing);//引用第2個工作表mySheet = (_Worksheet)myBook.Worksheets[2];//命名工作表的名稱為 "Array"
mySheet.Name = "Array";//加入新的工作表在第1張工作表之後 
myBook.Sheets.Add(Type.Missing, myBook.Worksheets[1], 1, Type.Missing); 
//引用第2個工作表 
mySheet = (_Worksheet)myBook.Worksheets[2]; 
//命名工作表的名稱為 "Array" 
mySheet.Name = "Array"; 
//寫入報表名稱 
myExcel.Cells[1, 4] = "普通報表"; 
//設定範圍 
myRange=(Range)mySheet.get_Range(myExcel.Cells[2, 1], myExcel.Cells[UpBound1 + 1, UpBound2 + 1]); 
myRange.Select(); 
//用陣列一次寫入資料 
myRange.Value2 = "'" + myData; 
//設定儲存路徑 
string PathFile = Directory.GetCurrentDirectory() + @"\button4.xls"; 
//另存活頁簿 
myBook.SaveAs(PathFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing 
                            , XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, ype.Missing,Type.Missing,Type.Missing); 
//關閉活頁簿 
myBook.Close(false, Type.Missing, Type.Missing); 
//關閉Excel 
myExcel.Quit(); 
//釋放Excel資源 
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel); 
myBook = null; 
mySheet = null; 
myRange = null; 
myExcel = null; 
GC.Collect();
 

更多的語法在附件內

範例下載:C#讀Excel.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo