gpt4 book ai didi

excel - 在 Excel 中打印 MATLAB 图窗并调整其大小

转载 作者:行者123 更新时间:2023-12-03 03:04:47 26 4
gpt4 key购买 nike

我在 MATLAB 中有两个图形,其句柄为 hFig1hFig2。我想将它们打印到 Excel 中的特定单元格(单元格 E3 和 I3)并将它们重新调整为 [2 英寸 x 3 英寸]。

我尝试过使用 .AddPictures 对象处理程序并使用 print -dmeta,但我找不到实现所有三个目标的方法。

我同时也在向excel写入数据,因为发送的数据行很多,所以我希望有一种不需要通过ActiveXServer不断调用excel的方法。

有人有解决此类问题的好方法或资源吗?

最佳答案

您可以最轻松地将 MATLAB 数据添加到 Excel,如下所示:

% Create some arbitrary graphics
f1 = figure; peaks; f2 = figure; membrane;

% Connect to Excel, make it visible and add a worksheet
xl = actxserver('Excel.Application'); set(xl,'Visible',1);
xl.Workbooks.Add(1); xls = xl.ActiveSheet;

% Paste in the MATLAB figures
print(f1, '-dbitmap'); xls.Range('E3').PasteSpecial;
print(f2, '-dbitmap'); xls.Range('I3').PasteSpecial;

我不确定你所说的将图像设为 2 英寸 x 3 英寸到底是什么意思。是屏幕上的尺寸吗?以什么分辨率?还是打印时的尺寸?

您可以直接以为单位指定图像的大小和位置:

xls.Shapes.Item(1).PictureFormat.CropLeft  = 30;
xls.Shapes.Item(1).PictureFormat.CropRight = 30;
xls.Shapes.Item(1).Height = 200;
xls.Shapes.Item(1).Left = xls.Range('E3').Left;

但是如果您想要以英寸为单位,则需要一种转换为点的方法,具体取决于它的显示方式。

您提到您不断使用 actxserver 调用 Excel;每次写入每条数据时都要一遍又一遍地连接吗?您可能不需要这样做 - 更有可能的是,您可以保持单个连接打开并将每条数据写入其中,然后保存文件并关闭连接。

Microsoft documentation 是 Excel 对象模型的一个很好的引用资源。 。但这并不容易阅读:)

关于excel - 在 Excel 中打印 MATLAB 图窗并调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com