Matlab中使用Excel数据

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab中使用Excel資料收藏

% Open Excel, add workbook, change active worksheet,

% get/put array, save, and close

% First open an Excel Server

%打開一個Excel操作物件

Excel = actxserver('Excel.Application');

%使Excel物件可見,即打開Excel視窗,實際應用時設置其為不可見的set(Excel, 'Visible', 1);

% Insert a new workbook

%創建工作本組物件

Workbooks = Excel.Workbooks;

%添加一個工作本

Workbook = invoke(Workbooks, 'Add');

% Make the second sheet active

%獲取當前活躍工作本的表單組,一個工作本共有3個表單(sheets)Sheets = Excel.ActiveWorkBook.Sheets;

%獲取表單組中的一個表單

sheet2 = get(Sheets, 'Item', 2);

%啟動該表單

invoke(sheet2, 'Activate');

% Get a handle to the active sheet

%獲取當前活躍表單的控制碼

Activesheet = Excel.Activesheet;

% Put a MATLAB array into Excel

%向表單中寫入資料

A = [1 2; 3 4];

%設置寫到Excel中的範圍

ActivesheetRange = get(Activesheet,'Range','A1:B2');

%寫入

set(ActivesheetRange, 'Value', A);

% Get back a range. It will be a cell array,

% since the cell range can

% contain different types of data.

%讀會資料塊

Range = get(Activesheet, 'Range', 'A1:B2');

%獲取資料

B = Range.value;

% Convert to a double matrix. The cell array must contain only scalars.

%B現在是符合矩陣,將其轉換成數值矩陣

B = reshape([B{:}], size(B));

% Now save the workbook

%保存檔,可以寫絕對路徑,相對路徑總是保存在我的文件中

invoke(Workbook, 'SaveAs', 'myfile.xls');

% To avoid saving the workbook and being prompted to do so,

% uncomment the following code.

% Workbook.Saved = 1;

% invoke(Workbook, 'Close');

% Quit Excel

%退出Excel

invoke(Excel, 'Quit');

% End process

%結束Excel進程

delete(Excel);

function UserRange = ExcelRangeCalculate(data,begin)

% 計算資料矩陣所佔用的儲存格範圍

% UserRange = ExcelRangeCalculate(data,begin) 輸入參數data用來指定要寫入的

% 資料矩陣,begin用來指定寫入的初始位置(左上角位置)。

% Example:

% data = rand(5,3);

% UserRange = ExcelRangeCalculate(data,'A1')

%

if ~ischar(begin) || isempty(begin)

error('初始位置參數應為非空字串');

end

[m,n] = size(data);

begin = upper(begin);

Letter = begin(regexp(begin, '[A-Z]'));

id = begin(regexp(begin, '[0-9]'));

id = str2num(id);

if isempty(Letter)

Letter = 'A';

end

if isempty(id)

id = 1;

end

lastcol = dec2base27(base27dec(Letter)+n-1);

UserRange = [Letter,num2str(id),':',lastcol,num2str(id+m-1)];

相关文档
最新文档