線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2787
推到 Plurk!
推到 Facebook!

請教 XLSFile.pas 的支援功能

答題得分者是:dllee
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-08 14:31:23 IP:61.219.xxx.xxx 未訂閱
請教 XLSFile.pas 的支援功能

前陣子想使用StringGrid做成類似Excel報表的需求,
最初是使用csv格式,但是這樣一來就沒有辦法達成一些顏色、文字、CELL格式屬性上的變化
所幸在站上爬文找到了幾位大大們合力的大作

將資料庫直接轉入EXCEL檔(不用OLE/不用ADO)
http://delphi.ktop.com.tw/board.php?cid=17&fid=115&tid=22849
XLSfile.pas 的修訂版
http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=22993

照內文所敘利用StringGridToXLS() 很快的就可以輸出EXCEL報表
但是對於格式上的變化還是不知該如何變更,對照XLSFILE.pas內的SetCellAtribut() 裡的說明
找到了OpenOffice的EXCEL格式說明文件

閱讀了裡面的
page 26, 164, 167 有提到字體屬性 (文件pdf請見附件)
是不是目前的XLSFile.pas需要做更改BIFF2->BIFF8才能支援顏色、文字、CELL格式屬性?

由於完全不懂delphi pascal code所以碰碰撞撞看了好幾天才做出以上結論@@
還是說就目前的XLSFile.pas已經有辦法做這種更改?
目前只知道能更改下方屬性
(acHidden,acLocked,acShaded,acBottomBorder,acTopBorder,acRightBorder,acLeftBorder,acLeft,acCenter,acRight,acFill)

謝謝!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-10 08:27:46 IP:220.134.xxx.xxx 訂閱
哈哈, 這個問題我之前在改 XLSFile 時就發現了,XLSFile 算是很久很久之前某人的作品,
當時 Excel 的版本沒像現在那麼大,如您所述,它產出的 Excel 算是舊版的格式,而這個格式,
在 OpenOffice.org 的 Calc 並無法順利讀出(因為產出的格式真的太舊了),MS Excel 還可以
順利讀出。
如果要達到您想要的功能,XLSFile 在匯出 Excel 檔的部分要全部改寫,改用新版格式才能
作得到,以現有的 XLSFile 是無法達到的。
如果要自行實作,建議您一個方式,把 XLSFile.pas Class 內的 private 改成 protected
compile 後會產生 XLSFile.hpp,自行撰寫 XLSFile2.cpp/XLSFile2.h 繼承自原 class,
再把
StringGridToXLS 整個改寫,或加入必要的操作介面,這樣就不需要與
Delphi/Pascal 奮鬥了。用 BCB 最大的好處就是 Delphi/Pascal 與 Cpp 可以混用,
好好利用它吧
------
http://www.ViewMove.com
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-10 11:27:23 IP:61.219.xxx.xxx 未訂閱
感謝大大的回覆
原來真的是要做重新定義寫入的格式@@a
不過幸好有大大提供的這個撇步可以混用pascal
不然用delphi寫的話,我得去找本書來翻翻了
最近工作比較忙,等手邊案子結掉後再來試著改寫
成果出來後再來跟各位分享囉,謝謝您!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-10 20:40:07 IP:59.105.xxx.xxx 訂閱
那就請您加油囉 
------
http://www.ViewMove.com
系統時間:2024-05-02 14:26:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!