Csharp/CSharp Tutorial/Windows/Excel

Материал из .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");
  }
}