【问题标题】:Calling existing excel file using OLE - delphi使用 OLE 调用现有的 excel 文件 - delphi
【发布时间】:2016-04-11 00:51:55
【问题描述】:

我有一个 excel 文件,其中包含将在其中传递的数据的格式。有人可以帮我如何打开现有的 excel 文件吗?

var
  myExcel:variant;
begin
  myExcel:=CreateOleObject('Excel.application');
  myExcel.caption:='Summary of Check Issued';
  myExcel.visible:=false;
  myexcel.workbooks.add(1);
end

该语句将创建一个新的 excel 文件,但我想要的只是打开我现有的 excel 文件的语句。

【问题讨论】:

  • 解决这类问题有一个一般规则。启动 Excel - 转到菜单(在不同的 Excel 版本中不同,除非您安装了经典菜单)并打开 宏记录器 - 您可以执行您需要的操作,例如打开文件或更改单元格格式或任何其他操作.然后您返回到 macros mnager 对话框,停止记录器并开始编辑新宏 - 该宏将是 VBA 程序,可以执行您刚刚通过鼠标和键盘完成的操作。然后,您只需将准备好的程序从 VBA 翻译成 Delphi 就可以了。

标签: delphi ole


【解决方案1】:

您要查找的确切代码行是:

WorkBook := ExcelFile.WorkBooks.Open('yourfilename.xls');

完整的代码可能如下所示:

var
   ExcelFile : Variant;
   WorkBook : Variant;
   WorkSheet : Variant;

begin

  // Open Excel OLE
  ExcelFile :=  CreateOleObject('Excel.Application');

  // Handle WoorkBook
  if not VarIsNull(ExcelFile) then begin
      WorkBook := ExcelFile.WorkBooks.Open('yourfilename.xls');

      if not VarIsNull(WorkBook) then begin
      // Handle Sheet
          WorkSheet := WorkBook.WorkSheets.Item['yourSheetName'];
      end;

  end; 

有关更多详细信息,请参阅this article

【讨论】:

  • 嗨。我收到一个错误“抱歉,我们找不到 Account.xls”。我们应该我应该把文件?我已经将它粘贴到我的项目所在的文件夹中
  • 我也试过 WorkBook := myExcel.WorkBooks.Open('D:\files\project\Account.xls') 但它仍然有同样的错误
  • 首先确保您的文件具有扩展名.xls。如果您使用的 Excel 版本与我使用的版本不同,则它的扩展名可能略有不同,可能是 .xlsx。如果这不起作用,请尝试将 yourfilename.xls 替换为文件的完整路径,这可能看起来像 c:\users\tom\documents\account.xls
  • 如果所有其他方法都失败,请尝试重命名文件以以小写 a 开头,例如 account.xls
  • 我实在是太近了。我已经尝试过 WorkBook := myExcel.WorkBooks.Open('D:\files\project\April.xlxs') 。误认为 x 和 s 。但当我看到你的评论时,我意识到它是 .xlsx。哈哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
相关资源
最近更新 更多