請教 XLSFile.pas 的支援功能 |
答題得分者是:dllee
|
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
請教 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 發送簡訊給我 |
哈哈, 這個問題我之前在改 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 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |