赞
踩
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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。