D语言中国主页  D语言编辑器SciTE4D   DWin库 D语言官方网站
D语言编译器1.x最新版 OpenSource   Tango   webnews  Wiki

查看完整版本: Dwin操作EXCEL的一点方法(初学,初用)

wandernet 2008-5-10 20:44

Dwin操作EXCEL的一点方法(初学,初用)

1 import tango.io.Stdout;
2 import std.c.time;
3 import dwin.sys.win32.com.Core;
4 import dwin.sys.win32.com.Client;
5
6 void main()
7 {
8      IDispatch excel;
9      excel = coCreate!(IDispatch)("Excel.Application", ExecutionContext.LocalServer);
10     
11     if (excel !is null)
12      {
13         scope(exit)   {
14              sleep(3);
15              tryRelease(excel);
16              Stdout ("release ok").newline;
17          }   
18         
19          invokeMember("Visible", DispatchFlags.PutProperty, excel, 1);
20         
21          Variant vExcel = invokeMember ("Workbooks", DispatchFlags.GetProperty, excel);
22         
23          IDispatch office = vExcel.pdispVal;
24         
25         if ( office !is null ) {
26              invokeMember ("Add", DispatchFlags.GetProperty, office);
27              Stdout (" add workbook ok").newline;
28          }        
29         else
30              Stdout ("no Workbooks").newline;
31      }
32     else
33          Stdout ("no").newline;
34 }

wandernet 2008-5-13 20:26

高层、方便一点的:
import dwin.sys.win32.com.Core;
import dwin.sys.win32.com.Client;
import tango.io.Stdout;


void main()
{
    auto app = new DispatchObject("Excel.Application");
   
     app.set("Visible",1);                                
   
    auto vbooks = app.get("Workbooks");                  
    auto books = new DispatchObject(vbooks.pdispVal);
   
    auto vbook = books.get("Open", "d:\\200.xls");                     \\打开此文件
    auto book = new DispatchObject(vbook.pdispVal);  
   
    auto vsheet = book.get("ActiveSheet");
    auto sheet = new DispatchObject(vsheet.pdispVal);
   
    auto vrange = sheet.get("Range", "A1");                          \\设定单元格
    auto range = new DispatchObject(vrange.pdispVal);
   
    auto vvalue = range.get("Value");                                        \\读该设定的单位格的值
     Stdout ( vvalue ).newline;       \\ vvalue 是Variant结构体,为什么可直接输出成员变量的值 呢?  
        
}

圣域天子 2008-5-13 22:13

为何不封装成一个类呢??
页: [1]
查看完整版本: Dwin操作EXCEL的一点方法(初学,初用)