2014/04/16
Excel Group command with ExcelXP Component
ExcelWorksheet1.Range[_RangeBeg+':'+_RangeEnd,EmptyParam].Rows.Group(EmptyParam,EmptyParam,EmptyParam,EmptyParam);
2014/04/02
2014/03/20
TExcelWorksheet 取值
在開始介紹 ExcelWorksheet 如何取值前,我們要先了解 Excel 的專業術語:
上面的「A、B、C」是 Column,座標軸 X,以下用 COL 表示。
左邊的「1、2、3」是 Row,座標軸 Y,以下用 ROW 表示。
所以我們通常會使用座標方式來指定游標所在的位置,常見用語有使用名稱「C3」或座標值「3, 3」之類的表達方式。
在這邊要注意的是,在Excel中座標的表示法是「ROW, COL」。並不是常見的「COL, ROW」
所以我們得知 ExcelWorksheet 的座標取值方法是:
ExcelWorksheet.Cells.Item[ROW, COL]
要使用名稱定義也可以,以下都是正確的作法
請注意!參數Cell1, Cell2不能為數字,也不能為 nil,否則會報 「OLE error XXXXXXXX」 的錯誤!
追加補充,如何取得 ExcelWorksheet 的列印範圍:
ExcelWorksheet.UsedRange[_LCID].Columns.Count
ExcelWorksheet.UsedRange[_LCID].Rows.Count
到這邊為止,已經可以處理絕大部分Excel檔案匯入的工作了。
想知道 ExcelWorksheet更多的功能嗎?去找吧,所有功能屬性都寫在 ExcelWorksheet 的元件裡!
上面的「A、B、C」是 Column,座標軸 X,以下用 COL 表示。
左邊的「1、2、3」是 Row,座標軸 Y,以下用 ROW 表示。
所以我們通常會使用座標方式來指定游標所在的位置,常見用語有使用名稱「C3」或座標值「3, 3」之類的表達方式。
在這邊要注意的是,在Excel中座標的表示法是「ROW, COL」。並不是常見的「COL, ROW」
所以我們得知 ExcelWorksheet 的座標取值方法是:
ExcelWorksheet.Cells.Item[ROW, COL]
要使用名稱定義也可以,以下都是正確的作法
//property Range[Cell1: OleVariant; Cell2: OleVariant]: ExcelRange read Get_Range; ExcelWorksheet.Cells.Range['A1', EmptyParam].Value; ExcelWorksheet.Cells.Range['A1', 'A1'].Value; ExcelWorksheet.Cells.Range['A1', EmptyParam].Value2; ExcelWorksheet.Cells.Range['A1', 'A1'].Value2;
請注意!參數Cell1, Cell2不能為數字,也不能為 nil,否則會報 「OLE error XXXXXXXX」 的錯誤!
追加補充,如何取得 ExcelWorksheet 的列印範圍:
ExcelWorksheet.UsedRange[_LCID].Columns.Count
ExcelWorksheet.UsedRange[_LCID].Rows.Count
到這邊為止,已經可以處理絕大部分Excel檔案匯入的工作了。
想知道 ExcelWorksheet更多的功能嗎?去找吧,所有功能屬性都寫在 ExcelWorksheet 的元件裡!
2014/03/18
ExcelXP TExcelWorksheet 連結 Worksheet
前情提要:
1. 使用 Delphi
ExcelXP 元件開啟 Excel 和活頁簿(Workbook)
2. 把開啟的 Excel 和活頁簿關閉
這一節我們要聊的是「工作表」(Worksheet) 的連結 (是的,不含操作)。
ExcelWorksheet 這個元件的連結方式比較特別,它必須:
1. 先指定前一節已開啟的ExcelWorkbook
指向哪一個 Worksheet,
語法如下:
ExcelWorkbook.Worksheet[________]
這邊的填空處可以放兩種類型,一種是文字,另一種就是數字:
也就是 Worksheet 的「名字」或「排列的序號」
以這個例子來說,我們要開啟「Sheet3」時,程式可以這麼寫:
ExcelWorkbook.Worksheet[‘Sheet3’]
或
ExcelWorkbook.Worksheet[2]
序號是按左至右,從 1 起始。
2. ExcelWorksheet 元件連結或轉型後立即使用
I.
ExcelWorksheet 元件連結:(經常呼叫時使用)
ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheet[‘Sheet3’] as
_Worksheet);
II.
轉型後立即使用:(臨時呼叫時使用)
(ExcelWorkbook.Worksheet[‘Sheet3’]
as _Worksheet).ExcelWorksheet屬性
例如:
ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheet[‘Sheet3’] as
_Worksheet);
_YYYMM := ExcelWorksheet.Cells.Item[y, x];
_CONNO := ExcelWorksheet.Cells.Item[y1, x1];
或
_CURID := (ExcelWorkbook.Worksheet[‘Sheet3’] as
_Worksheet).Cells.Item[y1, x1]
不知道
Cells, Item 的屬性也沒有關係,下一節我們會再聊到。
2014/03/12
無狀態的DataSnap寫法參考
由於DCOM可以在網際網路直接傳送 OleVariant,所以有網友提出這個方案,可擴充機能很高。
努力學習中!
※※※ 已經 2014 年 4 月份完成 COM / RESTful 中間層的建置,目前看起來還是 COM 版的 DataSnap 效能要好。 ※※※
資料來源:
2014/03/10
悲劇的版本 Delphi 2009
悲劇的版本 Delphi 2009
就我印象所知,它是第一個支援 Unicode 的版本,也是被駡最慘的一個版本
(當時我以為 Delphi 2006 年版已經是爛中極致)
當我還不信邪的要使用它的時候,才知道這箇中奧秘
就我印象所知,它是第一個支援 Unicode 的版本,也是被駡最慘的一個版本
(當時我以為 Delphi 2006 年版已經是爛中極致)
當我還不信邪的要使用它的時候,才知道這箇中奧秘
2014/02/21
DsnDBCst.dcu 找不到的問題
DsnDBCst 是 DSDesign 元件中的檔案之一。
但在 Delphi 7 之後就找不到這個檔案了,所以在編譯舊元件時可能會出錯。
而且也找不到這個神奇元件在哪邊。
所幸,萬能的 Google 大神引領我,找到了替代品
將原有的 uses DsnDBCst 拿掉,並且引入 VclDesigner 到 Package 的 Requires 區,如此一來就可以了。
但可能編譯時,還是會失敗。
實際看過網路上流傳的 DsnDBCst.pas 後,才發現原來這個檔案的功用,有一半的功能是做 ResourceString 映射功能,如果有需要也可以自己補在需要出現的地方。
See Also:
[Pascal Fatal Error] DSDesign.pas(18): F1026 File not found: 'DsnDBCst.dcu'
kbmMemTable missing DSDesign.dcu
DsnDBCst为何物?
但在 Delphi 7 之後就找不到這個檔案了,所以在編譯舊元件時可能會出錯。
而且也找不到這個神奇元件在哪邊。
所幸,萬能的 Google 大神引領我,找到了替代品
「VclDesigner」
將原有的 uses DsnDBCst 拿掉,並且引入 VclDesigner 到 Package 的 Requires 區,如此一來就可以了。
但可能編譯時,還是會失敗。
實際看過網路上流傳的 DsnDBCst.pas 後,才發現原來這個檔案的功用,有一半的功能是做 ResourceString 映射功能,如果有需要也可以自己補在需要出現的地方。
See Also:
[Pascal Fatal Error] DSDesign.pas(18): F1026 File not found: 'DsnDBCst.dcu'
kbmMemTable missing DSDesign.dcu
DsnDBCst为何物?
訂閱:
文章 (Atom)
