Csharp/CSharp Tutorial/Windows/Excel — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 15:20, 26 мая 2010
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>