後期繫結的好處是:對於不同版本的軟體都能支援。如果機器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...