MATLAB中Figure图像导入至Excel(附源码)

MATLAB编码思路如下

1.创建一个 Excel 应用程序对象;

2.打开指定路径中的Excel表格;

3.将plot生成的图片打印到剪切板上;

4.设置图片在Excel的位置,以及Excel表格的大小;

5.保存并关闭工作簿;

6.关闭Excel应用程序实例并释放与之关联的资源。

说明:其中第1、5、6三步为固定格式代码,在第2、3、4步中可根据实际需求设置Excel的路径图片清晰度(dpi)图片粘贴的位置(Sheet)及表格的行高(RowHeight)列宽(ColumnWidth)。源代码如下所示:

clc;clf;close;

%% plot生成图片
pic = figure(1);
x=1:100;
y=sin(x);
plot(x,y);grid on;

%% 导入Excel

% 1.通过 actxserver 函数创建一个 Excel 应用程序对象,并设置其为可见状态
objExcel = actxserver('Excel.Application');
objExcel.Visible = true;

% 2.打开指定路径中的Excel表格,并将其激活
excelWorkbook = objExcel.Workbooks.Open('D:\DeskTemp\Temp.xlsx'); % 路径及文件名称需根据实际情况修改
excelSheet = excelWorkbook.ActiveSheet;

% 3.设置打印分辨率,此处dpi设为 60 .数值愈大,图像的清晰度愈高
dpi = 60 ; 
% 将plot绘制的图形以指定的分辨率打印到剪贴板上, pic为figure(1)的句柄,打印图片的格式是位图(-dbitmap)。
print(pic, sprintf('-r%d', dpi), '-clipboard', '-dbitmap');


% 4.设置图片打印的位置、表格的行高与列宽
Str = 'A';  RowNum = 1 ;
Sheet = [Str,num2str( RowNum )];              %Sheet变量确定单元格位置
excelSheet.Range( Sheet ).PasteSpecial();     %将图像粘贴到Sheet变量指定的单元格
excelSheet.Columns.Item(Str).ColumnWidth = 48.33;    %设置列宽
excelSheet.Rows.Item( RowNum ).RowHeight = 198.6;      %设置行高

% 5.保存并关闭工作簿
excelWorkbook.Save;
excelWorkbook.Close();
% 6.关闭Excel应用程序实例并释放与之关联的资源
objExcel.Quit();
objExcel.delete();

运行前后结果:

运行前,在D:\DeskTemp中新建空白表格Temp.xlsx

 代码运行后,可见plot生成的图片已导出至A1表格中。(MATLAB代码运行时需关闭Temp.xlsx

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值