matlab 服务器错误 电子表格,使用 Excel 作为自动化服务器读取电子表格数据
使用 Excel 作为自动化服务器读取电子表格数据
此示例说明如何使用 COM 自动化服务器从 MATLAB® 访问另一个应用程序。该示例创建了用于访问 Microsoft® Excel® 文件中的数据的用户界面。如果您在应用程序中未使用组件对象模型 (COM),请参阅电子表格中的函数和示例,以获取将 Excel 电子表格数据导入 MATLAB 的备选方法。
为实现 MATLAB 与电子表格程序之间的通信,该示例在运行 Excel 应用程序的自动化服务器中创建了一个对象。然后,MATLAB 通过 Excel 自动化服务器提供的接口访问电子表格中的数据。最后,该示例创建了用于访问 Microsoft Excel 文件中的数据的用户界面。演示的方法
使用自动化服务器,从 MATLAB 访问其他应用程序。
将 Excel 数据转换为界面和绘图中所用类型的方法。
以下方法说明如何可视化和操作电子表格数据:
实现一个支持绘制 Excel 电子表格选定列的界面。
将 MATLAB 图窗插入 Excel 文件中。
要查看完整的代码列表,请在编辑器中打开文件 actx_excel.m。创建 Excel 自动化服务器
通过 MATLAB 访问电子表格数据的第一步是使用 actxserver 函数和程序 ID excel.application 在自动化服务器进程中运行 Excel 应用程序。
exl = actxserver('excel.application');
exl 对象提供了对 Excel 程序所支持的多个接口的访问权限。使用 Workbooks 接口打开包含数据的 Excel 文件。
exlWkbk = exl.Workbooks;
exlFile = exlWkbk.Open([docroot '/techdoc/matlab_external/examples/input_resp_data.xls']);
使用 workbook 的 Sheets 接口访问来自 Range 对象的数据,该对象存储了对指定工作表内某个数据范围的引用。此示例访问从列 A 中的第一个单元格到列 G 中的最后一个单元格的所有数据。
exlSheet1 = exlFile.Sheets.Item('Sheet1');
robj = exlSheet1.Columns.End(4); % Find the end of the column
numrows = robj.row; % And determine what row it is
dat_range = ['A1:G' num2str(numrows)]; % Read to the last row
rngObj = exlSheet1.Range(dat_range);
此时,将通过 range 对象接口 rngObj 访问来自 Excel 文件的 sheet1 的整个数据集。此对象将在 MATLAB 元胞数组 exlData 中返回数据,该元胞数组同时包含数值和字符数据:
exlData = rngObj.Value;操作 MATLAB 工作区中的数据
现在数据在元胞数组中,您可以使用 MATLAB 函数提取部分数据并将其重构,以在界面中使用和传递给绘图函数。有关数据的假设,请参阅 Excel 电子表格格式。
以下代码用于操作数据:
for ii = 1:size(exlData,2)
matData(:,ii) = reshape([exlData{2:end,ii}],size(exlData(2:end,ii)));
lBoxList{ii} = [exlData{1,ii}];
end
该代码执行以下操作:
从元胞数组中提取数值数据。请查看花括号 {} 内的索引表达式。
串联索引操作返回的各个双精度值。请查看方括号 [] 内的表达式。
使用 reshape 函数将结果重构为数组,该数组将数据排列在各个列中。
提取每一列 exlData 数据的第一个单元格中的文本,并将文本存储在元胞数组 lBoxList 中。此变量用于生成列表框中的项目。Excel 电子表格格式
此示例假设 Excel 电子表格具有如下图所示的特定组织方式。
该 Excel 文件的格式如下:
每一列的第一个元素是用于标识该列中所含数据的文本。这些值被提取并用于填充列表框。
第一列 Time 用于其余所有数据绘图的 x 轴。
每个列中的所有行都将读入 MATLAB。创建绘图函数界面
此示例使用一个界面,使您能够从输入和响应数据的列表中进行选择。所有数据都绘制为时间的函数,并且您可以继续向图中添加更多数据。添加到图形中的每个数据绘图都会使得图例也随之扩展。
该界面包括下列细节:
在您向图中添加数据时会更新的图例
用于从坐标区中清除所有图的清除按钮
用于将图保存为 PNG 文件并将其添加到另一个 Excel 文件的保存按钮
用于显示或隐藏当前所访问的 Excel 文件的切换按钮
用于终止自动化服务器的图窗删除功能选择并绘制数据
当您点击 Create Plot 按钮时,其回调函数将查询列表框,以确定选中了哪些项目并绘制每个数据对时间的图。MATLAB 会更新图例以显示新数据,同时仍保留现有数据的图例。
function plotButtonCallback(src,evnt)
iSelected = get(listBox,'Value');
grid(a,'on');hold all
for p = 1:length(iSelected)
switch iSelected(p)
case 1
plot(a,tme,matData(:,2))
case 2
plot(a,tme,matData(:,3))
case 3
plot(a,tme,matData(:,4))
case 4
plot(a,tme,matData(:,5))
case 5
plot(a,tme,matData(:,6))
case 6
plot(a,tme,matData(:,7))
otherwise
disp('Select data to plot')
end
end
[b,c,g,lbs] = legend([lbs lBoxList(iSelected+1)]);
end % plotButtonCallback清除坐标区
此绘图函数设计为当用户从列表框中选择数据时可持续添加图形。Clear Graph 按钮将清除并重置坐标区,并清除用于存储绘图数据标签(供图例使用)的变量。
%% Callback for clear button
function clearButtonCallback(src,evt)
cla(a,'reset')
lbs = '';
end % clearButtonCallback显示或隐藏 Excel 文件
MATLAB 程序可访问在自动化服务器中运行的 Excel 应用程序的属性。通过将 Visible 属性设为 1 或 0,此回调可控制 Excel 文件的可见性。
%% Display or hide Excel file
function dispButtonCallback(src,evt)
exl.visible = get(src,'Value');
end % dispButtonCallback关闭图窗并终止 Excel 自动化进程
由于 Excel 自动化服务器在 MATLAB 以外的单独进程中运行,因此您必须显式终止此进程。关闭界面后,没有必要再让此进程保持运行状态,因此该示例通过 Quit 方法,使用图窗的 delete 函数来终止 Excel 进程。您还需要终止用于保存图的 Excel 进程。有关终止此进程的信息,请参阅将 MATLAB 图插入 Excel 电子表格。
%% Terminate Excel processes
function deleteFig(src,evt)
exlWkbk.Close
exlWkbk2.Close
exl.Quit
exl2.Quit
end % deleteFig将 MATLAB 图插入 Excel 电子表格
您可以在 Excel 文件中保存使用此界面创建的图。本示例使用一个单独的 Excel 自动化服务器进程来实现此目的。Save Graph 普通按钮的回调将创建图像并将其添加到 Excel 文件:
如屏幕中所见,坐标区和图例都被复制到一个配置为打印图形的不可见图窗(图窗的 PaperPositionMode 属性被设为 auto)。
print 命令可创建 PNG 图像。
使用 Shapes 接口将图像插入 Excel 工作簿。
服务器和接口均在初始化阶段进行实例化:
exl2 = actxserver('excel.application');
exlWkbk2 = exl2.Workbooks;
wb = invoke(exlWkbk2,'Add');
graphSheet = invoke(wb.Sheets,'Add');
Shapes = graphSheet.Shapes;
使用以下代码实现 Save Graph 按钮回调:
function saveButtonCallback(src,evt)
tempfig = figure('Visible','off','PaperPositionMode','auto');
tempfigfile = [tempname '.png'];
ah = findobj(f,'type','axes');
copyobj(ah,tempfig) % Copy both graph axes and legend axes
print(tempfig,'-dpng',tempfigfile);
Shapes.AddPicture(tempfigfile,0,1,50,18,300,235);
exl2.visible = 1;
end运行示例
要运行该示例,请选择列表框中的任意项目,然后点击 Create Plot 按钮。此示例提供的示例数据包含三个输入和三个关联的响应数据集。在该示例中,绘制所有这些数据集对 Excel 文件中的第一列(即时间数据)的图。
通过点击 Show Excel Data File 按钮查看 Excel 数据文件。要将图形图像保存在另一个 Excel 文件中,请点击 Save Graph 按钮。如果您在当前文件夹中拥有写访问权限,则 Save Graph 选项将在该文件夹中创建一个临时 PNG 文件。
界面如下图所示,列表框中的输入/响应对组为选中状态,坐标区则显示相应绘图。
要运行该示例,请点击此链接。
另请参阅
相关主题
matlab 服务器错误 电子表格,使用 Excel 作为自动化服务器读取电子表格数据相关推荐
- matlab将excel读进工作区,使用 Excel 作为自动化服务器读取电子表格数据
使用 Excel 作为自动化服务器读取电子表格数据 此示例说明如何使用 COM 自动化服务器从 MATLAB® 访问另一个应用程序.该示例创建了用于访问 Microsoft® Excel® 文件中的数 ...
- python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- qq不能发说说显示服务器错误,qq为什么发送不成word服务器拒绝发送离线请求. - 卡饭网...
qq服务器拒绝发送离线文件怎么办 qq服务器拒绝发送离线文件怎么办 qq服务器拒绝发送离线文件怎么办 服务器拒绝了您发送离线文件的原因: 第一种:传输文件容量超过限制;实际上所有的普通QQ用户都可用使 ...
- mvc怎么请求服务器错误信息,asp.net-mvc – IIS显示服务器错误而不是自定义错误...
我正在使用MVC 5,我正在使用自定义视图处理我的错误,例如(404,403 --等) 它在我的本地IIS上工作正常,但是当我在登台服务器上发布时,它显示有关这些错误代码的IIS服务器错误消息. 它显 ...
- 云应用程序服务器错误怎么办,“/”应用程序中的服务器错误解决方法
"/"应用程序中的服务器错误解决方法,是与WebConfig配置文件中mode属性相关,修改属性值便可查看具体错误原因. 电脑重装了下系统,重新打开项目运行报错:"/&q ...
- phpMyadmin报错 #2054无法登陆mysql服务器错误、#2002无法登陆mysql服务器错误
由于电脑本地已经装了mysql,最近因为学习原因需要下载使用phpstudy,安装后发现phpMyadmin登录后发生#2054无法登陆mysql服务器报错,查询众多帖子后都是说密码策略出错,导致无法 ...
- 天使动漫网显示服务器错误,HEALTHY HAROLD, HEALTHY ME连接服务器失败_九游手机游戏...
HEALTHY HAROLD, HEALTHY ME连接服务器失败游戏攻略 A fun, interactive game for pre school children and their pare ...
- python处理Excel实现自动化办公教学(含实战)【一】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)
最常出现的错误代码: 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 400(错误请求) 服务器不理解请求的语法. 404(未找到) 服务器找不到请求的网页.例如,如果请 ...
最新文章
- 面向用户计算机,一款面向普通用户的防火墙软件,让你了解计算机到底产生了哪些网络流量?...
- 【spring基础】spring 官方下载地址
- python socket代码_python入门之socket代码练习
- 关于parseInt面试题
- 《C4.5: Programs for Machine Learning》chaper4实验结果重现
- 设计模式-Factory Method Pattern
- 网易数据运河系统NDC设计与应用
- 省地县级联操作 http://www.popub.net/script/pcas.html
- cvMatchTemplate() 模板匹配
- 傅里叶变换 相位谱 幅度谱
- 手机文件上传ftp服务器,安卓手机文件上传 ftp服务器
- 我的 Android 开发实战经验总结
- Jetson 系列——Jetson Nano使用sudo命令免输入密码方法
- 灭了珊瑚虫,OOXX了SOFF,下一个是谁?
- 清华邓俊辉教授 数据结构算法 课程内容
- 计算机c盘用户爆满,为啥你的windows电脑C盘经常爆满?
- Spark高级分析与机器学习笔记
- 西门子dcs系统组态手册下载_不懂PLC,SCADA,也能通俗易懂的了解DCS(分布式控制系统)...
- ambari部署hadoop
- 【未知攻焉知防】如何利用旁注渗透入侵服务器站点