Matlab的 – 从Excel中获取公式与xlsread?

在文档doc xlsread中描述了可以使用[num,txt,raw] = xlsread('example.xls')将excel工作表中的数据导入到matlab中。

我有一个工作表,其中包含要复制到其他工作表的公式,但xlread将采用解释的公式而不是公式本身。 例如,一个公式是=AVERAGE(B8:V8) ,这是我想从程序中从工作表中拉出来,而不是Excel返回公式将返回的值0.810

是否有可能用matlab以任何方式提取公式?

只有xlsread是不可能的。

使用COM Excel对象的一个​​示例:

例如,我们使用一个简单的Excel表格,其中包含文本,值和公式:

excel片段

然后下面的代码:

 xlfile = 'test1.xlsx' ; xlRange = 'B3:C6' ; exl = actxserver('excel.application'); %// Create a COM server exlFile = exl.Workbooks.Open( [pwd '\' xlfile] ); %'// Open the file exlSheet1 = exlFile.Sheets.Item('Sheet1'); %// Choose the worksheet strFormula = exlSheet1.Range(xlRange).Formula %// Read the full range 

产生一个很好的单元arrays:

 strFormula = 'This is text' 'hello' 'this is value' '12.5' 'this is value' '29' 'this is formula' '=AVERAGE(C4:C5)' 

如果直接知道特定单元格的地址,则返回一个简单的string:

 cellFormula = exlSheet1.Range('C6').Formula %// Read a single cell cellFormula = =AVERAGE(C4:C5) 

使用xlsread是不可能的,你必须使用可用的API来读取excel文件或访问excel。 据我所知,select是:

  • Apache POI可以通过Java Bridge轻松使用。 一个例子可以在这里find
  • 类似于Java Bridge,Matlab的最新版本可以像openpyxl一样访问Python库。 这至less需要Matlab 2014b
  • 您可以通过COM或.NET访问Excel应用程序