全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
18044 6
2010-08-22
我想在matlab中调用excel表格中的数据,excel表格所在的位置是这个(C:\Users\billie\Desktop\第四次小组赛),
我查过其他网站里的一些解说,也试过,但是没能实现,不知道是哪的问题,好心人帮下我,谢谢了啊。
我也没有论坛币,是个新人,所以只能说句谢谢了,我的邮箱是(476929152@qq.com)。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-8-22 00:30:42
自己研究出来,哈哈,
还是在人大经济论坛里找到的。
哈哈!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-22 06:59:15
function exlData = getExcelData(fileName, SheetName, cellRange)                                             
% Copyright 2005 The MathWorks, Inc.
% Use Excel as a data server for MATLAB

%% Start data server
   exl = actxserver('excel.application');
   % Load data from an excel file
   % Get Workbook interface and open file
   exlWkbk = exl.Workbooks;
   exlFile = exlWkbk.Open(fileName);
   % Get interface for Sheet1 and read data into range object
   exlSheet1 = exlFile.Sheets.Item(SheetName);
   rngObj = exlSheet1.Range(cellRange);
   % Read data from excel range object into MATLAB cell array
   exlData = rngObj.Value;

   exl.Quit;
end % actx_excel
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-22 07:02:38
function actx_excel                                             
% Copyright 2005 The MathWorks, Inc.
% Use Excel as a data server for MATLAB

% Start data server
startServ1
% Scope variables from startServ1 to main function
exl; exlWkbk; exlData;
% Start graph server
startServ2
% Scope variables from startServ2 to main function
exl2; exlWkbk2; wb; Shapes;

%% Extract column data
% Time:1, inptAil:2, inptEle:3, inptRud:4, respAil:5, respEle:6, respRud:7
for ii = 1:size(exlData,2)
   matData(:,ii) = reshape([exlData{2:end,ii}],size(exlData(2:end,ii)));
   lBoxList{ii} = [exlData{1,ii}];
end
lbs = '';
tme = matData(:,1); % Time data
%% ------------ GUI layout ---------------
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% Set up the figure and defaults
f = figure('Units','characters',...
        'Position',[30 30 120 35],...
        'Color',panelColor,...
        'HandleVisibility','callback',...
        'IntegerHandle','off',...
        'Renderer','painters',...
        'Toolbar','figure',...
        'NumberTitle','off',...
        'Name','Excel Plotter',...
        'PaperPositionMode','auto',...
        'DeleteFcn',@deleteFig);

%% Create the bottom uipanel
botPanel = uipanel('BorderType','etchedin',...
    'BackgroundColor',panelColor,...
    'Units','characters',...
    'Position',[1/20 1/20 119.9 8],...
    'Parent',f);

%% Create the right side panel
rightPanel = uipanel('bordertype','etchedin',...
    'BackgroundColor',panelColor,...
    'Units','characters',...
    'Position',[88 8 32 27],...
    'Parent',f);

%% Create the center panel
centerPanel = uipanel('bordertype','etchedin',...
    'Units','characters',...
    'Position', [1/20 8 88 27],...
    'Parent',f);

%% Add an axes to the center panel
a = axes('parent',centerPanel);
xlabel(a,'Time')

%% Add listbox and label
listBoxLabel = uicontrol('Style','text','Units','characters',...
        'Position',[4 24 24 2],...
        'String','Select column(s) to plot',...
        'BackgroundColor',panelColor,...
        'Parent',rightPanel);
listBox = uicontrol('Style','listbox','Units','characters',...
        'Position',[4 2 24 20],...
        'BackgroundColor','white',...
        'Max',10,'Min',1,...
        'Parent',rightPanel,...
        'String',lBoxList(2:end));

%% Add edit field for excel file name
plotButton = uicontrol('Style','pushbutton','Units','characters',...
        'Position',[5 2 24 2],...
        'String','Create Plot',...
        'Parent',botPanel,...
        'Callback',@plotButtonCallback);
clearButton = uicontrol('Style','pushbutton','Units','characters',...
        'Position',[33 2 24 2],...
        'String','Clear Graph',...
        'Parent',botPanel,...
        'Callback',@clearButtonCallback);
saveButton = uicontrol('Style','pushbutton','Units','characters',...
        'Position',[60 2 24 2],...
        'String','Save Graph',...
        'Parent',botPanel,...
        'Callback',@saveButtonCallback);     
dispButton = uicontrol('Style','togglebutton','Units','characters',...
        'Position',[87 2 24 2],...
        'String','Show Excel Data File',...
        'Parent',botPanel,...
        'Callback',@dispButtonCallback);

%% ------------------Callback Functions------------

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
[legh,c,g,lbs] = legend([lbs lBoxList(iSelected+1)]);
end % plotButtonCallback

%% Callback for clear button
function clearButtonCallback(src,evt)
   cla(a,'reset')
   lbs = '';
end % clearButtonCallback

%% Callback for save graph button
function saveButtonCallback(src,evt)
   tempfig = figure('Visible','off','PaperPositionMode','auto');
   ah = findobj(f,'type','axes');
   copyobj(ah,tempfig)
   print(tempfig,'-dpng',[pwd 'exlgraphexample']);
   Shapes.AddPicture([pwd 'exlgraphexample.png'] ,0,1,50,18,300,235);
   exl2.visible = 1;
end
   
%% Display or hide Excel file
function dispButtonCallback(src,evt)
   %exl.visible = get(src,'Value');
   if get(src,'Value')
      exl.visible = true;
      set(src,'String','Hide Excel Data File')
   else
      exl.visible = false;
      set(src,'String','Show Excel Data File')
   end
end % dispButtonCallback

%% Start data server
function startServ1
   exl = actxserver('excel.application');
   % Load data from an excel file
   % Get Workbook interface and open file
   exlWkbk = exl.Workbooks;
   exlFile = exlWkbk.Open([docroot '/techdoc/matlab_external/examples/input_resp_data.xls']);
   % Get interface for Sheet1 and read data into range object
   exlSheet1 = exlFile.Sheets.Item('Sheet1');
   robj = exlSheet1.Columns.End(4);
   numrows = robj.row;
   dat_range = ['A1:G' num2str(numrows)];
   rngObj = exlSheet1.Range(dat_range);
   % Read data from excel range object into MATLAB cell array
   exlData = rngObj.Value;
   exl.registerevent({'WorkbookBeforeClose',@close_event1});
end % startServ1

% Start graph server
function startServ2
   % Create a second Excel server and
   % Add another workbook for saving
   % the graph to an Excel file
   exl2 = actxserver('excel.application');
   exlWkbk2 = exl2.Workbooks;
   wb = exlWkbk2.Add;
   graphSheet = wb.Sheets.Add;
   Shapes = graphSheet.Shapes;
   exl2.registerevent({'WorkbookBeforeClose',@close_event2});
end % startServ2

% Handle situation where user closes Excel data file
function close_event1(varargin)
% MATLAB does not currently support
% pass by reference arguments for events
% so you cannot set Cancel argument to True
% Instead, just quit server and restart
   if exist('exl','var')
      exl.Quit;
      set(dispButton,'Value',0,...
         'String','Show Excel Data File')
   end
   startServ1
end % close_event1

% Handle situation where user closes Excel graph file
function close_event2(varargin)
% MATLAB does not currently support
% pass by reference arguments for events
% so you cannot set Cancel argument to True
% Instead, just quit server and restart
   if exist('exl2','var')
      wb.Saved = true;
      exlWkbk2.Close
      exl2.Quit;
   end
startServ2
end % close_event2

%% Terminate Excel process
function deleteFig(src,evt)
   if exist('exl','var')
      exl.unregisterevent({'WorkbookBeforeClose',@close_event1});
      exlWkbk.Close
      exl.Quit
   end
   if exist('exl2','var')
      wb.Saved = true;
      exl2.unregisterevent({'WorkbookBeforeClose',@close_event2});
      exlWkbk2.Close
      exl2.Quit
   end
end % deleteFig      
end % actx_excel
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-22 16:44:57
本人英语一般,看起来有点小吃力,不过还是看懂了的。
非常感谢好心人丫。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-21 20:45:53
我平时也用到matlab,一起讨论哈,调用excel表格的话,试试
C=xlsread('文件名','表格名');C就是一个存放数据的矩阵,文件要存放在matlab的work文件中哦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群