2013-12-12 34 views
0

我需要在Matlab中生成一個代碼來編輯然後保存一個Excel文件。該代碼具有執行以下操作:編輯並保存來自Matlab的Excel文件

  1. 打開Excel文件

  2. 轉到第二片材(Sheet 2中)

  3. 更改單元的值A2

  4. 轉到第一張(sheet1)

  5. 將sheet1保存爲製表符分隔文本文件(.txt)

工作表1包含依賴sheet2中單元格A2的單元格(我需要對sheet2-A2的不同值進行多次這樣的操作,這就是爲什麼我需要編寫它的原因)。

瀏覽網頁,我已經能夠編碼步驟1-4(見代碼波紋管)。但是,我一直無法找到辦法。我非常感謝你的幫助。謝謝!!


% Open Excel Server:  
Excel = actxserver('Excel.Application');  

% Makes Excel visible in the screen:  
set(Excel, 'Visible', 1);  

% Open Excel file:  
Workbooks = Excel.Workbooks.Open('E:\TEST.xlsx');  

% Make the second sheet active:  
Sheets = Excel.ActiveWorkBook.Sheets;  
sheet2 = get(Sheets, 'Item', 2);  
invoke(sheet2, 'Activate');  

% Get a handle in the active sheet:  
Activesheet = Excel.Activesheet; 


% Edit cell A2:  
A = 2;  
ActivesheetRange = get(Activesheet,'Range','A2');  
set(ActivesheetRange, 'Value', A);  

pause(5) %Pauses the code for 5 seconds (so sheet 1 updates the formulas) 


% Going to Sheet1 where the focal data is:  
Sheets = Excel.ActiveWorkBook.Sheets;  
sheet1 = get(Sheets, 'Item', 1);  
invoke(sheet1, 'Activate'); 

+0

那裏不會有'sheet2 == Activesheet'嗎?如果您要使其可見,則可能需要對工作簿的句柄進行硬編碼,而不是使用「Excel.ActiveWorkBook」,因爲一旦用戶在尚未完成時打開另一個工作簿,該句柄就會失敗。 – scenia

回答