안녕하세요. 반갑습니다.
저는 엑셀로 데이터를 쓰기/저장 하고 있습니다.
방식은 엑셀 파일 하나에 열 갯수를 가져온 다음, 마지막 줄을 가져와서 계속해서 누적하는 방식입니다.
어려움을 겪고 있는 부분은,
누적하고 있는 파일을 엑셀로 열어 놓은 상태에서는, 위 기능으로 데이터가 누적되지 않는 현상입니다.
해당 엑셀파일을 닫으면 다시 정상적으로 누적되구요.
핸들에 의한 문제로 보이는데, OLE Function에서 열려져있는 파일을 강제로 닫는다거나
열려있어도 저장할 수 있도록 하는 방법이 있는지 궁금합니다.
항상 감사합니다.
//Excel
String strDirPath = "D:\\TEST.xls";
XLApp = CreateOleObject("Excel.Application"); // 엑셀 OLE 열기 및 초기 설정
XLApp.OlePropertySet("DisplayAlerts", false); // 엑셀 메시지 없음
XLApp.OlePropertySet("Visible", false); // 엑셀 프로그램 볼지 말지
XLSheet = XLApp.OlePropertyGet("WorkBooks"); // 엑셀 워크북 사용
XLSheet.OleFunction("Open", strDirPath.c_str()); // 엑셀 파일 열기
XLBook = XLApp.OlePropertyGet("ActiveWorkBook"); // 활성화 되어 있는 워크북 가져오기
XLActiveSheet = XLBook.OlePropertyGet("ActiveSheet"); // 엑셀 안에 내용 집어넣기
vrange = XLActiveSheet.OlePropertyGet("UsedRange");
nRowMax = vrange.OlePropertyGet("Rows").OlePropertyGet("Count"); //Row갯수
str = "Row" + IntToStr(nRowMax);
XLCell = XLActiveSheet.OlePropertyGet("Cells", nRowMax+1, 1);
XLCell.OlePropertySet("Value", WideString(str));
|