全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1787
推到 Plurk!
推到 Facebook!

顯示 Word

尚未結案
carter6
初階會員


發表:53
回覆:108
積分:42
註冊:2002-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-16 14:12:25 IP:218.170.xxx.xxx 未訂閱
大家好 : 我在 Word 裡畫表格,格子裡有文字有圖形,我要選取某幾格顯示在我的 form 裡,我該用那個元件去顯示和貼上呢?? Carter
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-16 14:32:19 IP:61.221.xxx.xxx 未訂閱
您好: 在system頁簽中有olecontainer,用此元件便可顯示 ~~應無所住而生其心~~
carter6
初階會員


發表:53
回覆:108
積分:42
註冊:2002-12-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-16 14:41:46 IP:218.170.xxx.xxx 未訂閱
terrychen,謝謝您!! 那我該怎麼到 Word 去複製 貼上呢?? Carter
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-16 15:03:11 IP:218.15.xxx.xxx 未訂閱
找了个相关的网,您去看看,试试: http://www.delphifans.com/article_view.asp?id=264 ——行径窄处,留一步与人行——
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-16 15:05:56 IP:211.22.xxx.xxx 未訂閱
您好: OleContainer1.CreateObjectFromFile(FileName, False); ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-16 15:09:05 IP:218.15.xxx.xxx 未訂閱
//取得Word 表格中的数据 procedure getWordCellStr; var WordApp: TWordApplication; WordDoc: TWordDocument; DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; i,iRow,iCol:integer; myCell:Cell; myRow:Row; begin memo1.Lines.Clear ; // ===== 创建对象 ===== if not Assigned(WordApp) then begin WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; end; if not Assigned(WordDoc) then WordDoc:= TWordDocument.Create(nil); try DocInx:=1; oFileName := 'd:\test.doc'; oReadOnly:=true; CfCversions := EmptyParam; AddToRctFiles:= EmptyParam; PswDocument:= EmptyParam; PswTemplate:= EmptyParam; oRevert:= EmptyParam; WPswDocument:= EmptyParam; WPswTemplate:= EmptyParam; oFormat:= EmptyParam; // ===== 打开文件 ===== WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles, PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); // ===== 关联文件 ===== WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); //方法(1)==> 规则表 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 iRow 行 For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin //第 iCol列 For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do begin myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol); memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(2)==> 不规则表:只有横向合并时 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow);//第 iRow 行 For icol := 1 To myRow.Cells.Count do //第 iCol列 begin myCell:= myRow.Cells.Item(iCol) ; memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(3)==> 不规则:横向、纵向合并时; 任何表格 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 j 个Cell for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do begin myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j); memo1.Lines.add(myCell.Range.Text); end; end; finally if Assigned(WordDoc) then // ===== 关闭文件 ===== begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then // ===== 关闭Word ===== begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end; end; end; //取得Word 表格中的数据 procedure getWordCellStr; var WordApp: TWordApplication; WordDoc: TWordDocument; DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; i,iRow,iCol:integer; myCell:Cell; myRow:Row; begin memo1.Lines.Clear ; // ===== 创建对象 ===== if not Assigned(WordApp) then begin WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; end; if not Assigned(WordDoc) then WordDoc:= TWordDocument.Create(nil); try DocInx:=1; oFileName := 'd:\test.doc'; oReadOnly:=true; CfCversions := EmptyParam; AddToRctFiles:= EmptyParam; PswDocument:= EmptyParam; PswTemplate:= EmptyParam; oRevert:= EmptyParam; WPswDocument:= EmptyParam; WPswTemplate:= EmptyParam; oFormat:= EmptyParam; // ===== 打开文件 ===== WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles, PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); // ===== 关联文件 ===== WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); //方法(1)==> 规则表 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 iRow 行 For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin //第 iCol列 For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do begin myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol); memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(2)==> 不规则表:只有横向合并时 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow);//第 iRow 行 For icol := 1 To myRow.Cells.Count do //第 iCol列 begin myCell:= myRow.Cells.Item(iCol) ; memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(3)==> 不规则:横向、纵向合并时; 任何表格 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 j 个Cell for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do begin myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j); memo1.Lines.add(myCell.Range.Text); end; end; finally if Assigned(WordDoc) then // ===== 关闭文件 ===== begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then // ===== 关闭Word ===== begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end; end; end; //取得Word 表格中的数据 procedure getWordCellStr; var WordApp: TWordApplication; WordDoc: TWordDocument; DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; i,iRow,iCol:integer; myCell:Cell; myRow:Row; begin memo1.Lines.Clear ; // ===== 创建对象 ===== if not Assigned(WordApp) then begin WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; end; if not Assigned(WordDoc) then WordDoc:= TWordDocument.Create(nil); try DocInx:=1; oFileName := 'd:\test.doc'; oReadOnly:=true; CfCversions := EmptyParam; AddToRctFiles:= EmptyParam; PswDocument:= EmptyParam; PswTemplate:= EmptyParam; oRevert:= EmptyParam; WPswDocument:= EmptyParam; WPswTemplate:= EmptyParam; oFormat:= EmptyParam; // ===== 打开文件 ===== WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles, PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); // ===== 关联文件 ===== WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); //方法(1)==> 规则表 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 iRow 行 For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin //第 iCol列 For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do begin myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol); memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(2)==> 不规则表:只有横向合并时 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow);//第 iRow 行 For icol := 1 To myRow.Cells.Count do //第 iCol列 begin myCell:= myRow.Cells.Item(iCol) ; memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(3)==> 不规则:横向、纵向合并时; 任何表格 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 j 个Cell for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do begin myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j); memo1.Lines.add(myCell.Range.Text); end; end; finally if Assigned(WordDoc) then // ===== 关闭文件 ===== begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then // ===== 关闭Word ===== begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end; end; end; //取得Word 表格中的数据 procedure getWordCellStr; var WordApp: TWordApplication; WordDoc: TWordDocument; DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; i,iRow,iCol:integer; myCell:Cell; myRow:Row; begin memo1.Lines.Clear ; // ===== 创建对象 ===== if not Assigned(WordApp) then begin WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; end; if not Assigned(WordDoc) then WordDoc:= TWordDocument.Create(nil); try DocInx:=1; oFileName := 'd:\test.doc'; oReadOnly:=true; CfCversions := EmptyParam; AddToRctFiles:= EmptyParam; PswDocument:= EmptyParam; PswTemplate:= EmptyParam; oRevert:= EmptyParam; WPswDocument:= EmptyParam; WPswTemplate:= EmptyParam; oFormat:= EmptyParam; // ===== 打开文件 ===== WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles, PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); // ===== 关联文件 ===== WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); //方法(1)==> 规则表 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 iRow 行 For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin //第 iCol列 For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do begin myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol); memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(2)==> 不规则表:只有横向合并时 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow);//第 iRow 行 For icol := 1 To myRow.Cells.Count do //第 iCol列 begin myCell:= myRow.Cells.Item(iCol) ; memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(3)==> 不规则:横向、纵向合并时; 任何表格 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 j 个Cell for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do begin myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j); memo1.Lines.add(myCell.Range.Text); end; end; finally if Assigned(WordDoc) then // ===== 关闭文件 ===== begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then // ===== 关闭Word ===== begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end; end; end; Delphi与Word(二)取得Word 表格中的数据 LuckyJan(原作) ——行径窄处,留一步与人行——
carter6
初階會員


發表:53
回覆:108
積分:42
註冊:2002-12-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-16 15:22:29 IP:218.170.xxx.xxx 未訂閱
謝謝各位: 我現在的問題是怎麼把 Word 的複製貼到olecontainer 裡!! Carter
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-17 08:44:23 IP:61.221.xxx.xxx 未訂閱
引言: 您好: OleContainer1.CreateObjectFromFile(FileName, False); ~~應無所住而生其心~~
OleContainer是用CreateObjectFromFile將資料送至OleContainer內 若你一定要用貼上,試試下面的程式碼,沒試過所以也不知道行不行,在這之前你必須先將WORD開啟。
 
var
  i: SmallInt;
  MyDoc: TWordDocument;
  name1,A,B,C: OleVariant;
  nb: String;
  TempRange: Range;
begin
  WordApplication1.Visible:= False;
  for i:= 2 to WordDocument1.Tables.Item(WordDocument1.Tables.Count).Rows.Count do
    begin
      TempRange:= WordDocument1.Tables.Item(WordDocument1.Tables.Count).Cell(i, 5).Range; //題目
      TempRange.SetRange(TempRange.Start, TempRange.End_-1);
      TempRange.Copy;
      OleContainer1.paste;
~~應無所住而生其心~~
系統時間:2024-07-04 2:53:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!