|
밑에 장성호님이 쓰신데로 하니까 오류가 생기는데요.
질문을 다시 설명하겠습니다.
FORM에서 EDIT 창으로 폴더이름을 입력 받습니다.
폴더 이름 1 : 오리
폴더 이름 2 : 추석
이렇게 입력을 받고 저장 버튼을 누르면 C\오리\추석\파일이름.XLS 이런식으로 저장이 되는겁니다.
이렇게 하고 싶은데 현재는 저장 버튼을 누르고 나서 폴더를 생성하고 원하는 경로를 선택하게 되어있는거죠.
그리고 질문 하나 더할게요
ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",(TVariant)"Test 2B") ; //TIME
지금 이렇게 하면 엑셀 시트에 TEST 2B라고 적히는데 이거 대신 읽어온 시간정보가 엑셀에 적히게 하고 싶습니다.
직접 넣은 문자가 아닌 메모리에서 읽어온 정보를 넣고 싶을 경우 어떻게 넣어야 하나요?
ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",prtc->hour) ; //TIME
이런식으로하면 에러가 나더라구요
Form1->EditHour->Text = prtc->hour; // 이렇게 시간을 읽어와 FORM에 보여주고 있습니다.
장성호 님이 쓰신 글 :
: 질문을 잘 이해못했습니다.
: 잘 코딩하신것 같은데...
:
:
: 얼핏 질문하신 목적이 아래와 같은것 아닌가 하여 적어봅니다.
:
: if( SaveDialog1->Execute() ) // 저장을 원하는 Folder와 파일이름 결정
: {
: //Excel저장 루틴
: ....
: ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: ....
: }
:
:
: 그러니까 Execute()함수의 결과가 true이면 저장루틴을....
:
: 질문의 목적에 맞는 답변인지요...
:
:
: 그럼.
:
:
: 아자! 님이 쓰신 글 :
: : 좋은 정보로 무사히 저장을 했습니다.
: : 그런데 저장할 경로를 선택할수는 있는데
: : 만약 저장할때 지정된 폴더에 저장하려면 어떻게 해야 하나요?
: :
: : 예를 들면 메모리에서 데이타를 읽어 그 값들을 엑셀에 저장하려고 하는데
: :
: : 날짜를 입력하세요 0920
: : 이름을 입력하세요 아자
: :
: : 이런후에 c/0920/아자/안에 파일이름을 저장하고 싶습니다.
: : =================================================================================================
: : ExcelApplication1->Connect();
: : ExcelApplication1->set_Visible(0, false); // true 화면에 보임, false 화면에 보이지 않음
: :
: : ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add());
: :
: : //첫번째 워크시트와 연결
: : ExcelWorksheet1->ConnectTo(ExcelApplication1->Worksheets->get_Item((TVariant)1));
: :
: : //워크시트의 이름
: : ExcelWorksheet1->set_Name(strTitle);
: : ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"A",(TVariant)"VERSION : ") ; //버젼
: : ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"A",(TVariant)"S/N : ") ; //시리얼 넘버
: : ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"A",(TVariant)"DATE : ") ; //날짜
: : ExcelWorksheet1->Cells->set_Item((TVariant)4,(TVariant)"A",(TVariant)"TIME P[mbar] T[C] STATE") ; //
: : ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",(TVariant)"Test 2B") ; //TIME
: : ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"B",(TVariant)"Test 2B"); //data1
: : ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"C",(TVariant)"Test 2B"); // data2
: : ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"D",(TVariant)"Test 2B"); // data3
: :
: : ExcelWorksheet1->Activate();
: :
: : ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: :
: :
: : //Excel 프로그램 종료
: : ExcelApplication1->Disconnect();
: : ExcelWorksheet1->Disconnect();
: : ExcelWorkbook1->Disconnect();
: :
: : =================================================================================================
: : 현재 이렇게 하니까 폴더를 입력받지 않고
: : 장성호 님이 쓰신 글 :
: : : 음....
: : :
: : : OleContainer 보다
: : : OLE를 직접코딩해서 쓰심이 좋을것 같습니다.
: : :
: : : 그리고 화면에 보여주는 것은 Excel 프로그램 자체를 Form위에 올려도 되지만
: : : 엑셀 파일의 데이타를 읽어서 TStringGrid 같은데 보여주는것을 권합니다.
: : :
: : : 아래 키워드로 여기 Q&A에서 검색해
: : :
: : : ExcelApplication
: : : ExcelWorksheet
: : : ExcelWorkbook
: : :
: : : Variant
: : : 엑셀
: : : CreateObject
: : : OlePropertyGet
: : : OleProcedure
: : :
: : :
: : : 그럼 ...
: : :
: : :
: : :
: : : 아자 님이 쓰신 글 :
: : : : 엑셀파일을 열어서 보여주는걸 하려고 이것저것 찾다가
: : : :
: : : : OleContainer1 를 이용하면 된다고 나와 있어서
: : : :
: : : : OpenDialog1->Execute();
: : : :
: : : : OleContainer1->CreateObjectFromFile("C:\\Test.xls",false);
: : : :
: : : : 이렇게 사용했습니다.
: : : :
: : : : 저장된 엑셀파일을 선택해서 그안에 데이터 시트를 보여주고 싶은데 이렇게 하니까
: : : :
: : : : 에러가 납니다.
: : : :
: : : : ㅇㅔ러 메세지는 OleContainer1 를 잘못사용햇다고 나오면서 그뒤로 다운되버립니다~
: : : :
: : : : 도움 부탁드려요
|