C 後期繫結操作Excel

2021-06-20 08:07:18 字數 1494 閱讀 7339

後期繫結的好處是:對於不同版本的軟體都能支援。如果機器a上安裝的office 2003,機器b上安裝office 2007,沒問題,下面**都能正常執行。但是如果採用前期繫結就不行了。關於「前期繫結和後期繫結」,「excel專業開發」一書的3.3.3節(43頁)說的非常清楚。

private void test()

trycatch (exception ex)

}public void exporttoexcel(system.data.datatable table)

public void exporttoexcel(system.data.datatable table, system.globalization.cultureinfo cultureinfoofoffice)

parameters[0] = header;

range.gettype().invokemember("value", bindingflags.setproperty, null, range, parameters, cultureinfoofoffice);

parameters = new object[2];

parameters[0] = "a2:" + convert.tostring(convert.tochar(64 + table.columns.count)) + (table.rows.count + 1).tostring().trim();

parameters[1] = missing.value;

range = sheet.gettype().invokemember("range", bindingflags.getproperty, null, sheet, parameters);

parameters = new object[1];

object[,] data = new object[table.rows.count, table.columns.count];

for (int i = 0; i < table.rows.count; i++)

}parameters[0] = data;

range.gettype().invokemember("value", bindingflags.setproperty, null, range, parameters, cultureinfoofoffice);

parameters = new object[1];

//啟動 excel

parameters[0] = true;

excel.gettype().invokemember("visible", bindingflags.setproperty, null, excel, parameters);

excel.gettype().invokemember("usercontrol", bindingflags.setproperty, null, excel, parameters);

}

datatable的使用技巧可參考:

php 後期繫結

自 php 5.3.0 起,php 增加了乙個叫做後期靜態繫結的功能,用於在繼承範圍內引 用靜態呼叫的類。準確說,後期靜態繫結工作原理是儲存了在上乙個 非 呼叫 non forwarding call 的類名。當進行靜態方法呼叫時,該類名即為明確指定的那個 通常在 運算子左側部分 當進行非靜態方法呼...

前期繫結和後期繫結

以vb為例 後期繫結 將物件分配給乙個宣告為objcet型別的變數,若將乙個變數宣告為variant or ojbect 包含as form,as control變數 vb編譯時就無法確定該變數講引用那種型別的物件,應用程式只能在執行時確定物件的屬性和方法。使用後期繫結,每次呼叫屬性或者方法時,vb...

php後期靜態繫結

後期靜態繫結 static 不再被解析為定義當前方法或屬性所在的類,而是在實際執行時計算的 可用 get called class 函式來得到被呼叫的方法所在的類名 this是指向當前物件 self 指向當前的類 self就是寫在哪個類裡面,實際呼叫的就是這個類 parent 指向父類 static...