来自Matlab的Excel MathType公式

时间:2018-10-18 16:10:56

标签: excel matlab activex

是否可以将 matlab 中的 mathType 公式插入 excel 电子表格中?

我将通过matlab创建一个excel文件并创建一个pdf报告。我的报告包含一些公式,我想使用excel MathType公式创建它们。是否可以从matlab中的activeX访问MathType方程?

1 个答案:

答案 0 :(得分:1)

这将需要创建MathType方程,然后通过ActiveX将其作为对象添加到Excel文件。我还没有找到从MATLAB调用MathType的任何方法,更不用说将结果对象移动到文件了。

一种替代方法是先进行plot your formula in a MATLAB figure,然后通过ActiveX将capture and insert the figure as an image插入Excel文件。这是绘制公式的示例:

hFigure = figure('Position', [100 100 300 200], 'Color', 'w');   % Create white figure
hAxes = axes(hFigure, 'Position', [0 0 1 1], 'Visible', 'off');  % Create invisible axes
text(hAxes, 0.5, 0.5, '$$y = \sum_{i=1}^N a_i*x_i$$', ...        % Create equation text
     'Interpreter', 'latex', ...
     'FontSize', 30, ...
     'HorizontalAlignment', 'center');

结果图:

enter image description here

现在您可以将此图形打印到剪贴板上,并使用ActiveX将其插入Excel工作表中:

excel = actxserver('Excel.Application');  % Create server object
excelWorkbook = excel.Workbooks.Add(1);   % Add a workbook
excelSheet = excel.ActiveSheet;           % Get the active sheet
dpi = get(groot, 'ScreenPixelsPerInch');  % Get screen dpi
print(hFigure, sprintf('-r%d', dpi), ...  % Print the figure at the screen resolution
      '-clipboard', '-dbitmap');          %   to the clipboard as a bitmap
excelSheet.Range('B2').PasteSpecial();    % Paste from clipboard (top left corner
                                          %   of image will be in the cell 'B2')
excelWorkbook.SaveAs('formula.xlsx');     % Save workbook to a file
excelWorkbook.Close();                    % Close workbook
excel.Quit();                             % Quit server
excel.delete();                           % Delete server object

这是它在Excel文件中的外观:

enter image description here