Csharp/CSharp Tutorial/Windows/Excel

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

BindToMoniker Excel

<source lang="csharp">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();
 }

}</source>

Excel Interop Example

<source lang="csharp">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" );
 }

}</source>

Excel workbook event handlers

<source lang="csharp">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");
 }

}</source>