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

在OleContainer中显示Excel

尚未結案
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-02 22:26:07 IP:218.70.xxx.xxx 未訂閱
各位大大好: 我的程序希望这样:当点击DBGRID中的’大二进制数据‘的时候, 在DBGrid下面的OleContainer中显示相应的excel文件。     
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
  BS: TADOBlobStream;
  sF:String;
begin
  if (Column.FieldName = 'Blobs') then
  begin
    BS := TADOBlobStream.Create(TBlobField(adodataset1.FieldByName('Blobs')), bmread);
    OleContainer1.LoadFromStream(BS); 
    BS.Free;
  end;
end;
 
提示错误:流格式不正确 请问上面的功能怎么实现? 有劳各位了,谢谢!
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-03 13:12:01 IP:218.163.xxx.xxx 未訂閱
loadfromfile不是這樣用的,他是相對於savettofile來使用 你可以先將blob stream存成一暫存檔,然後用 olecontainer1.CreateObjectFromFile('c:\500.xls',false); 這樣才可以正常顯示 另外,你可以測試olecontainer1.savetofile('my.ole') 這樣你才可以用olecontainer1.loadfromfile('my.ole'),才不會出錯 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-04 00:17:20 IP:218.70.xxx.xxx 未訂閱
pgdennis: 你好,先谢了!< >< > 请问一下,我点击一个 class="code"> procedure TForm1.DBGrid1CellClick(Column: TColumn); var BS: TADOBlobStream; sFN: string; //FileName begin if (Column.FieldName = 'Blobs') then begin try BS := TADOBlobStream.Create(TBlobField(adodataset1.FieldByName('Blobs')), bmread); sFN := ExtractFilePath(application.ExeName) '123.xls'; BS.SaveToFile(sFN); OleContainer1.CreateObjectFromFile(sFN, false); finally BS.Free; end; end; end;
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-04 14:36:58 IP:218.163.xxx.xxx 未訂閱
BLOB欄位中沒有filename資訊..我平常的做法是加一欄位 儲存 > 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-04 18:56:59 IP:218.70.xxx.xxx 未訂閱
pgdennis: 好主意,多谢了!
系統時間:2024-11-25 12:24:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!