Материал из .Net Framework эксперт
BindToMoniker Excel
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Excel;
class MainClass
{
[STAThread]
static void Main(string[] args)
{
Excel.Workbook MyWorkBook;
Excel.Worksheet MyWorkSheet;
string FileName = @"C:\Mybook.xls";
MyWorkBook = (Excel.Workbook)Marshal.BindToMoniker(FileName);
MyWorkSheet = (Excel.Worksheet)MyWorkBook.ActiveSheet;
System.Windows.Forms.Application.Run();
}
}
Excel Interop Example
using System;
using System.Runtime.InteropServices;
class MainClass
{
[STAThread]
static void Main(string[] args)
{
Excel.Application app = new Excel.ApplicationClass();
app.Visible = true;
app.Workbooks.Add( VarEnum.VT_NULL );
app.ActiveCell.set_Value( Excel.XlRangeValueDataType.xlRangeValueDefault, "Hello excel" );
}
}
Excel workbook event handlers
using System;
using Excel;
using System.Reflection;
public class MainClass
{
public static AppEvents_WorkbookBeforeCloseEventHandler Event_BeforeBookClose;
public static DocEvents_ChangeEventHandler Event_ChangeEvent;
public static void Main(string[] args)
{
Application excelApp = new ApplicationClass();
Workbook MyWorkbook = excelApp.Workbooks.Add(Missing.Value);
MyWorkbook.Windows.get_Item(1).Caption = "Using Delegates";
Worksheet MyWorksheet1 = (Worksheet)MyWorkbook.Worksheets.get_Item(1);
Worksheet MyWorksheet2 = (Worksheet)MyWorkbook.Worksheets.get_Item(2);
Worksheet MyWorksheet3 = (Worksheet)MyWorkbook.Worksheets.get_Item(3);
MyWorksheet1.Activate();
Event_BeforeBookClose = new AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose);
excelApp.WorkbookBeforeClose += Event_BeforeBookClose;
Event_ChangeEvent = new DocEvents_ChangeEventHandler(CellChange);
MyWorksheet1.Change += Event_ChangeEvent;
MyWorksheet2.Change += Event_ChangeEvent;
MyWorksheet3.Change += Event_ChangeEvent;
excelApp.Visible = true;
excelApp.UserControl = true;
}
private static void CellChange(Range Target)
{
MessageBox.Show("cell changed");
}
private static void BeforeBookClose(Workbook MyWorkbook, ref bool Cancel)
{
MessageBox.Show("before closing a workbook");
}
}