Matlab - 使用 xlsread 从 excel 获取公式?
Matlab - get formula from excel with xlsread?
在文档 doc xlsread
中描述了可以使用 [num,txt,raw] = xlsread('example.xls')
将数据从 excel sheet 提取到 matlab 中。
我有一个 sheet 包含要复制到其他 sheet 的公式,但是 xlread
将采用解释的公式 value公式本身。例如,一个公式是 =AVERAGE(B8:V8)
,这是我想以编程方式从 sheet 中提取的内容,但是 excel return 的值 0.810
是什么该公式将 return.
是否可以用matlab以任何方式提取公式?
无法使用 xlsread
,您必须使用可用的 API 之一来读取 excel 文件或访问 excel。据我所知,选择是:
- 可以通过 Java Bridge. An example can be found here
轻松使用的 Apache POI
- 类似于 Java Bridge,最新版本的 Matlab 可以访问 Python 库,例如 openpyxl. This requires at lest Matlab 2014b
- 您可以通过 COM or .NET
访问 Excel 应用程序
只有 xlsread
是不可能的。
使用 COM Excel 对象的一个示例:
让我们使用一个简单的 excel sheet 例如,包含文本、值和公式:
然后是下面的代码:
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
生成一个不错的元胞数组:
strFormula =
'This is text' 'hello'
'this is value' '12.5'
'this is value' '29'
'this is formula' '=AVERAGE(C4:C5)'
如果您直接知道特定单元格的地址,您 return 一个简单的字符串:
cellFormula = exlSheet1.Range('C6').Formula %// Read a single cell
cellFormula =
=AVERAGE(C4:C5)
在文档 doc xlsread
中描述了可以使用 [num,txt,raw] = xlsread('example.xls')
将数据从 excel sheet 提取到 matlab 中。
我有一个 sheet 包含要复制到其他 sheet 的公式,但是 xlread
将采用解释的公式 value公式本身。例如,一个公式是 =AVERAGE(B8:V8)
,这是我想以编程方式从 sheet 中提取的内容,但是 excel return 的值 0.810
是什么该公式将 return.
是否可以用matlab以任何方式提取公式?
无法使用 xlsread
,您必须使用可用的 API 之一来读取 excel 文件或访问 excel。据我所知,选择是:
- 可以通过 Java Bridge. An example can be found here 轻松使用的 Apache POI
- 类似于 Java Bridge,最新版本的 Matlab 可以访问 Python 库,例如 openpyxl. This requires at lest Matlab 2014b
- 您可以通过 COM or .NET 访问 Excel 应用程序
只有 xlsread
是不可能的。
使用 COM Excel 对象的一个示例:
让我们使用一个简单的 excel sheet 例如,包含文本、值和公式:
然后是下面的代码:
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
生成一个不错的元胞数组:
strFormula =
'This is text' 'hello'
'this is value' '12.5'
'this is value' '29'
'this is formula' '=AVERAGE(C4:C5)'
如果您直接知道特定单元格的地址,您 return 一个简单的字符串:
cellFormula = exlSheet1.Range('C6').Formula %// Read a single cell
cellFormula =
=AVERAGE(C4:C5)