我有一個現有的(打開和空的)文件「D:\ api.xlsx」,需要與Matlab通信。 首先,我嘗試從A1讀值:B2,並插入新的價值觀:Matlab與Excel之間的actxserver通信
excelapp = actxserver('Excel.Application');
wkbk = excelapp.Workbooks;
wdata = wkbk.Open('D:\api.xlsx');
sheet = wdata.ActiveSheet;
range = sheet.get('Range', 'A1:B2');
range.Value
ans =
[NaN] [NaN]
[NaN] [NaN]
range.Value = magic(2);
>> range.Value
ans =
[1] [3]
[4] [2]
但我不認爲在Excel中的變化。範圍A1:B2保持空白。 同樣,當我手動將新值插入到Excel中時,range.Value
將返回舊值。
因此,有兩個問題:
如何將值插入從MATLAB打開excel文件,因此新值立即可見?
如何進入Matlab的更新(從Excel)值?
我明白'actxGetRunningServer('Excel.Application')'返回'excelapp'對象。但是如何在不指定文件名的情況下獲得'wdata'? – Serg 2012-08-08 17:04:25
好的,我可以通過'excelapp.ActiveSheet'直接獲取'sheet'。這是我需要的。謝謝! – Serg 2012-08-08 17:23:21
這是正確的 - 一旦您連接到正在運行的Excel副本,您可以通過正常引用它們來訪問已打開的所有內容。很高興幫助。 – 2012-08-09 09:44:30