다른 이름으로 저장은 그냥 다음과 같이 하면 됩니다.
XL.OleProcedure("SaveAs",asFileName.c_str()); //다른 이름으로 저장
참고로..
엑셀 / 워드 등의 OLE-Automation은
1) 실제로 Office프로그램을 실행하여서
2) 매크로 기록 을 ON 하신후
3) 하고 싶은 작업을 합니다.
4) 매크로 기록을 OFF합니다
5) 매크로 보기 하시면 3)에서 하신 작업이 매크로로 기록되어있습니다.
그 script를 OLE코드로 변환하시면 됩니다.
잘 모르는 기능은 모두 위와같은 방식으로 하시면 됩니다.
그럼..
memi 님이 쓰신 글 :
: 음.. 카피는 잘했는데 프린터세팅 마진이 틀려서 문제네요 ㅡㅡ;
: 역시 꼼수로는 안되네요..
: 시트를 통째로 세이브에즈 해야할 듯한데 아시는분 없나요?
:
: memi 님이 쓰신 글 :
: : 급해서 그냥 꼼수로 일단 해결했습니다.
: : 클립보드에 전체 내용을 카피 -> 시트생성 -> 클립보드 페이스트
: : 아래팁트릭게시판 링크 참조하여 해결했습니다.
: :
: :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=1075
: :
: : memi 님이 쓰신 글 :
: : : 파일을 읽어서 내용을 쓰는데 까지는 성공했는데요..
: : :
: : : 내용을 적은 시트를 복사해서.. Sheet4로 만들고 싶은데 명령어를 모르겠습니다..
: : : 이것저것 검색해봤지만 안보이네요
: : :
: : :
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : : Variant XL,v0,v1,v2,cells;
: : : Variant ns;
: : :
: : : XL=Variant::CreateObject("excel.application");
: : : XL.OlePropertySet("Visible",false);
: : :
: : : WideString path = "C:\\test.xlsx";
: : : XL.OlePropertyGet("Workbooks").OleProcedure("Open",path);
: : :
: : : WideString sheet = "Sheet1";
: : : v0=XL.OlePropertyGet("Sheets",sheet);
: : :
: : : v1=v0.OlePropertyGet("Cells");
: : :
: : : WideString data = "1234";
: : : cells = v1.OlePropertyGet("Cells",1,3);
: : : cells.OlePropertySet("Value",data);
: : :
: : : //여기서 시트(Sheet4)를 복사해서 다음 작업을 진행하고 싶음..
: : : XL.OlePropertySet("DisplayAlerts",false);
: : : XL.OleProcedure("Save");
: : : v0=Unassigned;
: : : v1=Unassigned;
: : : v2=Unassigned;
: : : XL.OleProcedure("Quit");
: : : XL=Unassigned;
: : : }
: : :