2017-05-27 199 views
0

我在Windows 10 64位上使用Delphi X10和Word 2016 64位。 我總是使用ComObj。 例如:如何在Delphi中使用Word和Excel?

uses ComObj; 


procedure TForm1.RzBitBtn1Click(Sender: TObject); 
var Excel: variant; i, j: word; 
begin 
    Excel := CreateOleObject('Excel.Application'); 
    Excel.Workbooks.Open('file.xls'); 
    for i := 1 to 5 do 
    for j := 1 to 5 do 
    StringGrid1.Cells[j, i] := Excel.Sheets[1].Cells[i, j].Text; 
end; 

但是,我想用autocompleate爲Excel方法。我讀了我應該導入類型庫,但我無法找到我的系統中的類型庫文件。

+0

那麼,是什麼問題?如果系統中沒有類型庫,我們可以提供什麼幫助?只需檢查它們是否由Office安裝程序安裝(也許它們不是默認情況下)。 – Victoria

回答

0

這是很容易做到的,只要用於Excel anmd Word中的類型庫正確註冊。

轉到下你的Delphi的OCX \服務器文件夾中安裝並找到Word2010.Pas。將其添加到新的VCL項目中,並將其用於主窗體的單元中。在主窗體上聲明表單變量A: WordApplication

做完這些後,你應該能夠去到Form1的Form.Create,類型

A. 

,並自動完成你應該提供WordApplication的方法和屬性的可能性。

現在,打開Word2010.Pas並找到部分

// File generated on 2/20/2013 5:56:45 PM from Type Library described below. 

// ************************************************************************ // 
// Type Lib: c:\Program Files\Microsoft Office\Office14\msword.olb (1) 
// LIBID: {00020905-0000-0000-C000-000000000046} 

,告訴您的名字和其用於生成Word2010.Pas類型庫的位置。

現在,除非你需要使用已添加到Word/Excel中,因爲2010年版,Word2010.Pas和Excel2010.Pas可能是所有你需要一些方法/屬性。但是,您可以使用Delphi導入更新版本的類型庫,併爲其生成一個導入單元。具體怎麼做取決於你的Delphi版本,但對於Delphi西雅圖。你只需轉到Component |從IDE主菜單導入組件,然後在彈出窗口中選擇Import type library並按照嚮導的提示進行操作。

一旦你產生的進口單位,很明顯,你只需使用在您的項目,而不是MSWord2010。

順便說一句,嚴格來說,沒有「德爾福X10」,最近的版本(因爲XE8)已經西雅圖,柏林和東京。

+0

感謝您的回答。 問題是,似乎沒有類型庫在系統中,也許是因爲辦公室是64位。沒有單詞或Excel,只有一些Office。 https://ibb.co/jQ7QTF –

+0

聽起來像是你可能會做的第一件事是驗證Word2010.Pas是否適用您的系統上。如果沒有,您需要爲Excel和Word找到64位類型庫的名稱,如果可以的話,註冊它們,然後引用例如https://bobsotherblog.wordpress.com/2013/09/19/import-64bit-type-libraries-in-delphi/瞭解如何導入它們。如果您想要的所有功能都是在IDE中自動完成的,那麼看起來可能是一個麻煩的過程。 – MartynA

相關問題