Importing data in Excel using an ActiveX connection
조회 수: 1 (최근 30일)
이전 댓글 표시
Greetings. I am having difficulties running an automated script that makes an Excel worksheet import data from an external source (a .dat file) using an activex connection from Matlab. Assuming Excel is my activex object, the following should (I think) make Excel import the designated file in cell A1:
% UI: Name the .xlsx file to write to
[xlfile, xlpath] = uiputfile('*.xlsx', 'Save Workspace as'); Inputsheet=1;
if isequal(xlfile,0) || isequal(xlpath,0)
disp('User pressed cancel')
else
disp(['User selected ', fullfile(xlpath, xlfile)])
end
filename = [xlpath xlfile]; % file directory
% Write a number to the file to make it physical
xlswrite(filename,1)
% Retrieve sheet names
[~, sheetNames] = xlsfinfo(filename);
% Open Excel as a COM Automation server
Excel = actxserver('Excel.Application');
% Open Excel Workbook
Workbook = Excel.Workbooks.Open(filename);
% Clear the content of the desired output sheet
cellfun(@(x) Excel.ActiveWorkBook.Sheets.Item(x).Cells.Clear, sheetNames(Inputsheet));
% Get a handle to the active sheet
Activesheet = Excel.Activesheet;
Excel.Activesheet.Connection.Add(Excel.Activesheet.get('Range', 'A1'), 'TEXT','C:\Users\isc.ISC1\Desktop\Matlab Programs\GTstrudl Output Postprocessing\WD-ULS-PUNCHING-JACKET-WEAK-LRFD.DAT')
% END
but the code gives me the error message:
Excel.ActiveSheet.Connection.Add(Excel.Activesheet.get('Range', 'A1'), 'TEXT','C:\Users\isc.ISC1\Desktop\Matlab Programs\GTstrudl Output Postprocessing\WD-ULS-PUNCHING-JACKET-WEAK-LRFD.DAT')
No appropriate method, property, or field Activesheet for class handle.handle.
Any help from knowledgeable souls is very welcome.
Thanks in advance, Poul Reitzel
댓글 수: 0
답변 (1개)
Image Analyst
2011년 10월 21일
Wouldn't it be Workbook.ActiveSheet? Just guessing - haven't tried - but try it and see.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 ActiveX에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!