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

//加入新的活頁簿(即新建一个Excel文件) 
myExcel.Workbooks.Add(true);
//停用警告訊息
myExcel.DisplayAlerts = false;
//讓Excel文件可見(默认为不可见,不可见时,文件在后台修改,可见时,文件修改过程可以看到)
myExcel.Visible = true;
//引用第一個活頁簿
myBook = myExcel.Workbooks[1];
//設定活頁簿焦點
myBook.Activate();
//引用第一個工作表(即sheet页)
mySheet = (_Worksheet)myBook.Worksheets[1];
//命名工作表的名稱為 "Cells"
mySheet.Name = "Cells";
//設工作表(sheet页)焦點
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";
//寫入報表名稱 
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, Type.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();

转自http://www.dotblogs.com.tw/yc421206/archive/2009/01/11/6727.aspx 并经自己修改

posted on 2011-04-12 14:36  Osiris4Net  阅读(732)  评论(0编辑  收藏  举报

导航