1. delphi讀取word文檔每一頁的內容
uses ComObj,WordXp;
var wordapp, WordDoc, PageRange: Variant;
sContext: string;
i, nPageCounts, nStart, nEnd : Integer;
begin
wordapp := CreateOleObject('Word.Application');
try
wordapp.Visible := True;
if dlgOpen1.Execute = False then Exit;
WordDoc := wordapp.Documents.Open(dlgOPen1.FileName);
//文檔總頁數
nPageCounts := wordapp.Selection.Information[wdNumberOfPagesInDocument];
//如果只有一頁 那麼全選就OK了
if nPageCounts = 1 then
begin
wordapp.Selection.WholeStory;
mmo1.Lines.Add('=============第'+IntToStr(nPageCounts)+'頁內容:===================');
mmo1.Lines.Add(wordapp.Selection.Text);
Exit;
end;
nStart := -1;
nEnd := -1;
//循環獲取文檔頁中的內容
for i := 1 to nPageCounts do
begin
//定位到第i頁
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i));
//如果第i頁是最後一頁 那麼直接將游標移動到最後 並輸出內容
if i = nPageCounts then
begin
wordapp.Selection.EndKey(wdStory,wdExtend);
sContext := WordApp.Selection.Range.Text;
mmo1.Lines.Add('=============第'+IntToStr(i)+'頁內容:===================');
mmo1.Lines.Add(sContext);
Exit;
end;
//取第i頁的頁首位置作為開始位置
nStart := wordapp.Selection.Start;
//定位到i+1頁
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i+1));
//取第i+1頁的頁首位置作為結束位置
nEnd := wordapp.Selection.Start;
//根據開始位置和結束位置確定文檔選中的內容(第i頁的內容)
WordDoc.Range(nStart,nEnd).Select;
sContext := WordDoc.Range.Text;
//輸出內容
mmo1.Lines.Add('=============第'+IntToStr(i)+'頁內容:===================');
mmo1.Lines.Add(sContext);
nStart := -1;
nEnd := -1;
end;
finally
wordapp.Quit;
end;
end;
昨天沒有測試好 這個應該沒有問題了吧 試一下吧
2. 怎麼用delphi 7寫程序在Word中生成表格。
1)在調用Documents集合的Add方法時,Template參數不再使用EmptyParam值,而是指定為「值班日誌表.dot」,這樣添加的文檔將以「值班日誌表.dot」為模板;
2)在插入相應的內容時,我使用的是一個比較笨的方法,但是對於這個不規則的表格來說卻可能是最有效的方法:計算出該表格中共有多個個段落,然後通過語句在所有應插入內容的段落中插入內容。也懶得自己數了,定義了一個整型變數paraCount,將其賦值為WordDoc.Paragraphs.Count,最後用一個消息框顯示出來,得到該表格有38個段落,最後注釋掉以上代碼:)
3)接下來的工作就是數數了,數到一個該插入內容的段落,就寫一段代碼插入相應的內容。比如:「值班時間」(表頭)是第6段,接在後面該填入內容的空白段落就是第7段,於是寫代碼在第7段中插入實際內容。
最後,想說的是一個在操作Word 2000時很有用的幫助文件,VBAWRD9.CHM,裡面詳細介紹了Word 2000中使用的VBA,裡面介紹了很多有用的對象、屬性和方法,還有一些VB代碼作為示例,很容易可以想到對應的Delphi代碼。這個文件在Office 2000的安裝盤裡面可以找到,具體路徑忘記了)
希望採納,謝謝!
3. 為什麼我用delphi調的word不能啟動
用 delphi 調用 word ,通常是使用 OleCreateObject 函數,來啟動 word 程序,如:
CreateOleObject('Word.Application')
此外,如果不需要考慮 word 控制等,只是單純的專啟動 word,可以使用屬 ShellExecute 或是 WinExec 等函數啟動程序。
如果 word 不能啟動,建議檢查:
1、 word 軟體的安裝情況,比如某些精簡安裝版的 word 可能由於注冊表中某些登記不完整,會導致出錯;運行的電腦系統中 word 是否能正確運行等等。
2、調用 word 的命令是否有誤。