2013-12-12 29 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

回答