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

请问如何根据图片路径把图片导出到excel或word?

答題得分者是:timhuang
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-11 10:32:42 IP:218.18.xxx.xxx 未訂閱
比如我的资料库中某个栏位储存了10张图片的路径,请问该如何把这些图片导入到excel或work中呢?
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-14 09:27:21 IP:218.18.xxx.xxx 未訂閱
如果不能导入到EXCEL或WORD中,导入到其它什么能看图片的程式中也行啊,winxp中自带的那种看图软件中也行
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-14 10:02:57 IP:203.95.xxx.xxx 未訂閱
請問你存的是路徑還是圖檔的內容? 若是路徑的話, 可以配合 Pictures.Insert 來寫, 程式如下:    
procedure TForm1.Button1Click(Sender: TObject);
var
  excel, wb, ws: Variant;    begin
  excel := CreateOleObject('Excel.Application');
  wb := excel.WorkBooks.Add;
  ws := wb.WorkSheets[1];
  ws.Pictures.Insert( 'C:\Sample.jpg');
  excel.Visible:=true;
end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-15 09:15:12 IP:218.18.xxx.xxx 未訂閱
引言: 請問你存的是路徑還是圖檔的內容? 若是路徑的話, 可以配合 Pictures.Insert 來寫, 程式如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  excel, wb, ws: Variant;    begin
  excel := CreateOleObject('Excel.Application');
  wb := excel.WorkBooks.Add;
  ws := wb.WorkSheets[1];
  ws.Pictures.Insert( 'C:\Sample.jpg');
  excel.Visible:=true;
end;
运行不了 [Warning] caseembryo1.pas(335): Variable 'ImageH' might not have been initialized [Error] caseembryo1.pas(1427): Undeclared identifier: 'CreateOleObject' [Fatal Error] main.dpr(93): Could not compile used unit 'samplespic\caseembryo1.pas' 请问该如何处理,是不是要先声明变量,怎么声明啊
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-15 10:40:48 IP:203.95.xxx.xxx 未訂閱
引言: [Error] caseembryo1.pas(1427): Undeclared identifier: 'CreateOleObject' 请问该如何处理,是不是要先声明变量,怎么声明啊
Hi, CreateOleObject 是在 Comobj 單元中的函數, 請在程式內加入: uses Comobj;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-15 13:55:50 IP:218.18.xxx.xxx 未訂閱
如果我有几十个图形,按timhuang大哥的做法只可以把图形重叠在一块显示,能不能一张一张分开来显示啊
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-15 18:17:06 IP:203.95.xxx.xxx 未訂閱
引言: 如果我有几十个图形,按timhuang大哥的做法只可以把图形重叠在一块显示,能不能一张一张分开来显示啊
procedure TForm1.Button1Click(Sender: TObject);
var
  excel, wb, ws, p1: Variant;    begin
  excel := CreateOleObject('Excel.Application');
  wb := excel.WorkBooks.Add;
  ws := wb.WorkSheets[1];
  p1 := ws.Pictures.Insert( 'C:\Sample.jpg');
  p1.ShapeRange.IncrementLeft(200);
  p1.ShapeRange.IncrementTop(100);
  excel.Visible:=true;
end;
配合 IncrementLeft, IncrementTop 來進行即可!!
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-16 08:54:34 IP:218.18.xxx.xxx 未訂閱
timhuang大哥,小弟十分之愚蠢,我照你所说写的程序如下 procedure TForm_caseembryo1.SpeedButton5Click(Sender: TObject); var excel,wb,ws,p1:Variant; int:integer; begin Qry1.First; excel:=CreateOleObject('Excel.Application'); wb := excel.WorkBooks.Add; ws := wb.WorkSheets[1]; while not Qry1.Eof do begin if qry1.FieldByName('picpath').AsString=null then abort else p1:=ws.Pictures.Insert(Qry1.FieldByname('picpath').asstring); p1.ShapeRange.IncrementLeft(100); p1.ShapeRange.IncrementTop(50); Qry1.Next; end; excel.Visible:=true; end; 但图片在excel中还是重叠在一块,请问如何使它们分开,还请明示,THKS
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-16 11:55:56 IP:203.95.xxx.xxx 未訂閱
sorry. 我沒有說清楚. IncrementLeft, IncrementTop 是用來調整插入圖片的位置用的, 所以你要調整一下放進去的參數, 例如你要每 100 個 pixel 來放置的話, 你可以修改一下你的程式為:    
var i:integer;    i:=0;
while not Qry1.Eof do
begin
  if qry1.FieldByName('picpath').AsString=null then abort else
  begin
    p1:=ws.Pictures.Insert(Qry1.FieldByname('picpath').asstring);
    p1.ShapeRange.IncrementLeft(i);
    p1.ShapeRange.IncrementTop(50);
    i:=i 100;
  end;
    Qry1.Next;
end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

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