|
안녕하세요
엑셀 저장때문에 벌써 몇일째인지 모르겠습니다..
포럼에 올라온 OLE를 이용한 저장방식을 이용해서 엑셀 파일 저장을 하려고합니다.
일단 테스트로 간단하게 예제를 구현해 보았는데, 아무런 문제 없이 잘 되더군요
그래서 이제 적용하려는 프로그램 코드에 확인된 코드를 붙여 놓았는데...
Access Violation 에러 메시지가 뜨네요
구현한 코드는 아래와 같습니다.
-----------------------------------------------------------------------------------------------
Variant excel_app;
Variant excel_book;
Variant excel_sheet;
Variant cells;
String asFileName = "C:\\ExcelSaveTest.xls";
excel_app = Variant::CreateObject("excel.application"); //Excel 프로그램 실행
excel_app.OlePropertySet("Visible", (Variant)false); //Excel 프로그램 Visible설정 <----- 에러 부분
excel_app.OlePropertyGet("WorkBooks").OleProcedure("Add"); //Add to New file
excel_book=excel_app.OlePropertyGet("ActiveWorkbook"); //현재 Active된 WorkBook 선택
excel_sheet=excel_book.OlePropertyGet("ActiveSheet"); // WorkBook에서 Acitve된 Sheet선택
excel_book.OleProcedure("SaveAs",asFileName.c_str()); //저장
excel_book.OleFunction("Close", (Variant)False); //Excel 문서 닫기
excel_sheet = Unassigned;
excel_book = Unassigned;
excel_app.OleFunction("Quit"); //Excel 프로그램 종료
excel_app = Unassigned;
-----------------------------------------------------------------------------------------------
엑셀 오브젝트 생성 후에 Visible설정에만 들어가면 오류가 납니다.
분명 예제로 테스트할때는 아무런 문제가 없던 코드인데
이 프로그램에만 붙이면 저곳에서 에러가 나네요 ㅠ
사용된 컴포넌트는 tms, themeengine, raize가 있습니다.
고수님들 도와주세요...ㅠㅠ
|