728x90
반응형
우선 Octave에 windows라는 package 가 설치되어 있어야 한다.
링크 : https://gnu-octave.github.io/packages/
GNU Octave - Packages
Extend GNU Octave's functionality by packages. Find many of them here.
gnu-octave.github.io
설치되어 있지 않다면 Octave의 command line에서 하기 내용을 입력한다.
다음은 간단히 엑셀 파일을 읽어드린 후 몇몇 셀에 수치를 입력하고 저장 후 종료하는 예제이다.
clear
clc
pkg load windows
p_id = actxserver('Excel.Application');
wbs = p_id.workbooks;
pth = 'd:\works\octave\export.xlsm';
wb = wbs.Open(pth, 0, false);
wb.activate;
nCols = p_id.ActiveSheet.UsedRange.Columns.Count
nRows = p_id.ActiveSheet.UsedRange.Rows.Count
hSheets = p_id.ActiveWorkbook.Sheets;
hSheet1 = get(hSheets, 'Item', 1);
range1a = ['A' num2str(nRows+1) ':' 'L' num2str(nRows+1)];
range1b = ['M' num2str(nRows+1) ':' 'M' num2str(nRows+1)];
range1c = ['N' num2str(nRows+1) ':' 'AM' num2str(nRows+1)];
range2a = ['A' num2str(nRows+2) ':' 'L' num2str(nRows+2)];
range2b = ['M' num2str(nRows+2) ':' 'M' num2str(nRows+2)];
range2c = ['N' num2str(nRows+2) ':' 'AM' num2str(nRows+2)];
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range1a);
hActivesheetRange.Value = '1.0';
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range1b);
hActivesheetRange.Value = '2.0';
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range1c);
hActivesheetRange.Value = '3.0';
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range2a);
hActivesheetRange.Value = '4.0';
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range2b);
hActivesheetRange.Value = '5.0';
hActivesheetRange = get(p_id.ActiveSheet, 'Range', range2c);
hActivesheetRange.Value = '6.0';
wb.save;
p_id.quit;
728x90
반응형
'Programming > Matlab, Octave, Scilab' 카테고리의 다른 글
Octave로 Powerpoint 제어하기 (1) | 2022.11.17 |
---|---|
[Matlab] Parallel Processing Example Code (0) | 2010.05.25 |
[Matlab] for loop perfomance (0) | 2010.05.16 |
[Matlab] Double vs Cell array Speed. (0) | 2010.05.16 |
[Matlab] Webcam 을 이용해서 동영상 보기 코드 (0) | 2010.05.01 |
댓글