C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[74919] Re:암호있는 excel 파일 open
박우성 [solgari] 3487 읽음    2018-05-09 18:27
Excel COM을 찾아 보셔야 하는데...
다음 주소를 참조해 보면 답이 나옵니다.

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbooks-open-method-excel

test1.xlsx를 만들어 저장할 때 읽기/쓰기 비빌번호를 "1234"로 하여 저장한 후 다음 코드 실행해 보면됩니다.


    Variant App;
	try{
		WideString loadFile = "D:\\test1.xlsx"; //기존파일명
		WideString saveFile = "D:\\test2.xlsx"; //새로 저장할 파일명

		App = CreateOleObject("Excel.Application"); //COM(OLE) Object 생성

		App.OlePropertySet("Visible", true);

		Variant readOnly = false;
		WideString pw = "1234";

		Variant workbook = App.OlePropertyGet("Workbooks").OleFunction("Open", loadFile, Unassigned, readOnly, Unassigned, pw, pw);  // 기존 파일 열기

		Variant sheet = workbook.OlePropertyGet( "Sheets").OlePropertyGet( "Item", 1 ); //첫번째 Sheet
		//Variant sheet = workbook.OlePropertyGet( "ActiveSheet" ); //활성화된 Sheet

		sheet.OlePropertyGet("Cells",1, 1).OlePropertySet("Value", 1234567 );  //셀 수정

		workbook.OleFunction( "SaveAs", saveFile ); //다른 이름으로 저장
	}__finally{
		App.OleFunction("Quit");
		App = Unassigned;
	}




라이손레종ㅎ 님이 쓰신 글 :
: 앞전에 글을 올렸는데.. 빌더가 죽어가는거 같네요.. 예전엔 질문올리면
: 많은 고수분들께서 답변 해주셨는데.. 요즘은 안보이시는거 같기도 하고..
: 전 터보c로 .. 배워서.. 잘모릅니다.. 질문할곳도.. 여기뿐이고요..
: 나름 구글에서 몇일을 찾아보았지만.. 해답이 없네요..
:
: 혹시나해서.. 다시 질문을 드려보아요..
:
: 엑셀에 암호를 설정해두면( 시트보호 아님 ) 어떻게 열어야 하나요 .. ??
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:     Variant App;
:     try{
:         WideString loadFile = "D:\\test1.xlsx"; //기존파일명
:         WideString saveFile = "D:\\test2.xlsx"; //새로 저장할 파일명
:
:         App = CreateOleObject("Excel.Application"); //COM(OLE) Object 생성
:
:         App.OlePropertySet("Visible", true);
:
:         Variant workbook = App.OlePropertyGet("Workbooks").OleFunction("Open", loadFile );  // 기존 파일
:         // 여기서 암호를 넘어주면 될듯한데.. 어떻게.. 하는지 전혀 모르겠습니다..
:
:         Variant sheet = workbook.OlePropertyGet( "Sheets").OlePropertyGet( "Item", 1 ); //첫번째 Sheet
:         //Variant sheet = workbook.OlePropertyGet( "ActiveSheet" ); //활성화된 Sheet
:
:         sheet.OlePropertyGet("Cells",1, 1).OlePropertySet("Value", 1234567 );  //셀 수정
:
:         workbook.OleFunction( "SaveAs", saveFile ); //다른 이름으로 저장
:     }__finally{
:         App.OleFunction("Quit");
:         App = Unassigned;
:     }
:
: 아시는분 부탁드립니다..

+ -

관련 글 리스트
74918 암호있는 excel 파일 open 라이손레종ㅎ 3130 2018/05/09
74919     Re:암호있는 excel 파일 open 박우성 3487 2018/05/09
74920         Re:Re:암호있는 excel 파일 open 라이손레종ㅎ 3497 2018/05/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.