如何在 Delphi 中使用 Word 和 Excel?
How work with Word and Excel in Delphi?
我在 Windows 10 64 位上使用 Delphi X10 和 Word 2016 64 位。
我一直使用 ComObj。
例如:
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;
但是,我想对 Excel 方法使用自动完成。我阅读了我应该导入类型库的内容,但我无法在我的系统中找到类型库文件。
这很容易做到,只要 Excel 和 Word 的类型库正确注册即可。
转到 Delphi 安装下的 OCX\Servers 文件夹并找到 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 的类型库的名称和位置。
现在,除非您需要使用一些自 2010 版本以来添加到 Word/Excel 的 method/property,否则 Word2010.Pas 和 Excel2010.Pas 可能就是您所需要的。但是,您可以使用 Delphi 导入更新版本的类型库,并让它为其生成一个导入单元。具体如何操作取决于您的 Delphi 版本,但适用于 Delphi 西雅图。您只需转到 Component |从 IDE 主菜单导入组件,然后在弹出窗口中 select Import type library
并按照向导的提示进行操作。
生成导入单元后,显然您只需在项目中使用它而不是 MSWord2010。
顺便说一句,严格来说,没有"Delphi X10",最近的版本(从XE8开始)是西雅图,柏林和东京。
我在 Windows 10 64 位上使用 Delphi X10 和 Word 2016 64 位。 我一直使用 ComObj。 例如:
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;
但是,我想对 Excel 方法使用自动完成。我阅读了我应该导入类型库的内容,但我无法在我的系统中找到类型库文件。
这很容易做到,只要 Excel 和 Word 的类型库正确注册即可。
转到 Delphi 安装下的 OCX\Servers 文件夹并找到 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 的类型库的名称和位置。
现在,除非您需要使用一些自 2010 版本以来添加到 Word/Excel 的 method/property,否则 Word2010.Pas 和 Excel2010.Pas 可能就是您所需要的。但是,您可以使用 Delphi 导入更新版本的类型库,并让它为其生成一个导入单元。具体如何操作取决于您的 Delphi 版本,但适用于 Delphi 西雅图。您只需转到 Component |从 IDE 主菜单导入组件,然后在弹出窗口中 select Import type library
并按照向导的提示进行操作。
生成导入单元后,显然您只需在项目中使用它而不是 MSWord2010。
顺便说一句,严格来说,没有"Delphi X10",最近的版本(从XE8开始)是西雅图,柏林和东京。