제가 예전에 엑셀 테스트 하면서 만든 소스 올려 놓았으니 참고해 보세요..
빌더 XE4 버전으로 개발 했었습니다.
BuildMan 님이 쓰신 글 :
: 안녕하세요. 반갑습니다.
: 저는 엑셀로 데이터를 쓰기/저장 하고 있습니다.
: 방식은 엑셀 파일 하나에 열 갯수를 가져온 다음, 마지막 줄을 가져와서 계속해서 누적하는 방식입니다.
:
: 어려움을 겪고 있는 부분은,
: 누적하고 있는 파일을 엑셀로 열어 놓은 상태에서는, 위 기능으로 데이터가 누적되지 않는 현상입니다.
: 해당 엑셀파일을 닫으면 다시 정상적으로 누적되구요.
:
: 핸들에 의한 문제로 보이는데, 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));
:
:
:
|