台灣最大程式設計社群網站
線上人數
2083
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> 其他語言 >> [delphi]關於ADOINT.RecordSet塞資料到excel問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[delphi]關於ADOINT.RecordSet塞資料到excel問題
價值 : 10 QP  點閱數:1213 回應數:1
樓主

sky
門外漢
0 1
24 1
發送站內信

用XLApp.ActiveSheet.Range['K5:L10'] := loc_RecordSet.GetRows(5, 0, EmptyParam);

會變成 2*5 塞到 5*2 的矩陣裡面,變成2*2的範圍內有資料,其他變成 "#N/A"

會這麼做是因為要把RecordSet的資料作切割,不要一口氣全部扔到excel的API: CopyFromRecordSet裡面,

而GetRows回傳的陣列又不能轉成recordset,所以才會想出最上面列出的程式碼片段(可看起來還是不行OTZ

有別的辦法嗎?

搜尋相關Tags的文章: [ delphi ] , [ recordset ] ,
本篇文章發表於2014-03-27 14:41
1樓
作者回應

sky
檢舉此回應
目前只有想到不怎麼好的兩個方法
方法1.

1. 將RecordSet轉成string(Xml格式)
2. 以Xml格式讀取,這裡稱為[原始Xml]
3. 複製[原始Xml],除了真實資料節點的部分以外,這裡稱為[無內容Xml範本]
4. 根據要切割成幾個RecordSet,就從[無內容Xml範本]複製出幾分,這裡稱為[分割出來的Xml]
5. 從[原始Xml]找到資料的部分,根據每個[分割出來的Xml]所需要的資料範圍(N~M筆),逐一將[原始Xml]中每個ROW的節點複製到[分割出來的Xml]
6. 將所有[分割出來的Xml]轉成RecordSet
7. 清掉[原始Xml]、[分割出來的Xml]、[無內容Xml範本]

方法2.

1. SQL配合ROW_NUMBER()做多次Query
本篇文章回覆於2014-04-02 17:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.