|
가장 간단한 방법은
내용을 탭으로 구분해서 엑셀파일을 만든다음 -> 일반 ASCII 입니다.
파일을 ShellExecute로 열어주면 -> 연결된 프로그램이 실행되면서 해당 파일을 엽니다.
엑셀이 실행됩니다.
String str, tmpfile = ExtractFilePath(Application->ExeName) + "tmp.xls";
TFileStream* fs = new TFileStream(tmpfile, fmCreate);
for(int i = 1; i < StringGrid1->RowCount; i++)
{
str = "";
for(int j = 1; j < StringGrid1->ColCount; j++)
str += StringGrid1->Cells[i][j].Trim() + "\t";
str.SetLength(str.Length() - 1); // 마지막에 들어간 탭 삭제
str += "\n"; // 행구분을 위해 개행문자 삽입
fs->Write(str.c_str(), str.Length());
}
delete fs;
ShellExecute(Handle, "open", tmpfile.c_str(), NULL, NULL, NULL);
김광수 님이 쓰신 글 :
: String grid 에 표시 되는 데이타를 Execl 파일로 변화하여 저장 하려고 합니다.
:
: 버튼을 하나 만들고 그버튼을 실행하면.Excel 실행되고..
:
: 실행후에는 string grid 에 있는내용이 그대로 Excel로 옮겨지면 되는데.
:
: 전혀 방법을 모르겠습니다.
:
: 많은 조언 부탁 드립니다.
:
: void __fastcall TMainForm::BtnExcelClick(TObject *Sender)
: {
: Variant XLApp, XLWorkbooks,XLWorkbook,XLWorksheet;
:
: try
: {
: XLApp = CreateOleObject("Excel.Application");
: }
: catch(...)
: {
: ShowMessage("Excel OLE server not found");
: return;
: }
: XLWorkbooks = XLApp.OlePropertyGet("Workbooks");
: XLWorkbook = XLWorkbooks.OleFunction("Add", 1); // 1은 덧붙일 Sheet의 갯수
: XLWorksheet = XLWorkbook.OlePropertyGet("ActiveSheet");
:
: XLWorksheet.OlePropertyGet("Cells").OlePropertySet("_Default", 1, 1, "111111");
:
: }
:
: 이런 예제가 있어서 해봤는데..
: 제가 할려고 하는것은 우선 엑셀이 실행이 되고 나서 데이타가 화면에 나타나는건데요..
: 위의 예제는 일단 save만 해놓고 엑셀을 실핼 시켜야 하고 또한 데이타도 다시 엑셀에서 save해줘야만 보이는거 같은데..
: 꼭 부탁드립니다..고수님들~~~~ㅠㅠ
|