【问题标题】:Open MS Excel by Matlab用 Matlab 打开 MS Excel
【发布时间】:2012-04-01 18:36:00
【问题描述】:

有没有办法让 Matlab 直接在 MS Excel 中打开 excel 文件?我的意思不仅仅是读取数据,而是物理打开 MS Excel。 我有一个脚本可以处理一些数据并将其保存到 .xlsm 中。此 .xlsm 包含 auto_open 宏,它生成报告并将其保存到另一个 .xls 中。 我希望这个过程尽可能自动化。至此,当 matlab 脚本结束时,需要手动打开 .xlsm 文件。可以通过matlab实现吗? (.m 文件和 .xlsm 在同一个文件夹中。)

【问题讨论】:

    标签: excel matlab


    【解决方案1】:

    打开(但不关闭)Excel 文件的最简单方法是使用WINOPEN

    winopen('myFile.xlsx')
    

    【讨论】:

    • 我已经尝试解决所有 actxserver 错误几个小时,但最终简单的“winopen”完美运行。不知道怎么会忽略这个功能...谢谢大家;)
    【解决方案2】:

    Excel 具有强大的 COM 接口,可让您从其他应用程序控制它。

    在这里寻找 matlab 方面的东西

    http://www.mathworks.co.uk/help/techdoc/ref/actxserver.html

    这里是一个将所有内容放在一起的示例。 . .

    https://www.quantnet.com/forum/threads/interface-between-matlab-vba-excel.2090/

    或者这里是另一个例子

    http://www.mathworks.co.uk/support/solutions/en/data/1-716EAM/index.html?solution=1-716EAM

    【讨论】:

      【解决方案3】:

      是的,这是可能的。 Matlab 可以使用 Excel 的自动化界面来执行此任务和类似任务。以下代码加载 Excel,然后加载工作簿:

      try
          w = actxserver('Excel.Application');     % Fails if Excel not installed
      catch
          w = [];
      end
      
      if ~isempty(w)
          w.Workbooks.Open('D:\Documents\MATLAB\file.xlsx');
          % Your code here;
          w.Quit;
      end
      delete(w);
      

      您需要查看 Microsoft 的 Excel 自动化界面文档,以准确了解您需要发送哪些命令。尝试启动here。 我已经使用这种技术从 Matlab 驱动 Word 以生成报告文档,但我从未以这种方式使用过 Excel,所以很遗憾我无法为您提供血腥细节!

      【讨论】:

        猜你喜欢
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        相关资源
        最近更新 更多