|
예전에 사용하던 소스인데
엑셀은 2007이고 빌더는 6.0그대로입니다.
그런데 SAVEAS에서 에러가 나서..
ActiveWorkBook.OleFunction("SaveAs", FilePath ); --> 여기서 에러가 발생됩니다.
엑셀이 있는 것을 읽어오는 것은 에러가 안 났는데
새로운 엑셀에 데이타를 입력하고 파일명을 입력하는 데서 에러가 나네요.
예전에 사용한 소스 그대로실행해도 에러가 나서....
---------------------
Variant xlApp;
String str,Lv,Mv,strP,title[200];
String tel,pa1,pa2,pa3,pa4,pa5,save_file;
int x,y,i,j,k,n[200],ac;
float tot,vf[200],vftot,ks;
AnsiString FilePath ;
ExcelSaveDialog->Filter = "excel files(*.xls)l*.XLS";
if ( ExcelSaveDialog->Execute() )
FilePath = ExcelSaveDialog->FileName ;
else
return;
try
{
xlApp = CreateOleObject("Excel.Application");
}
catch(...)
{
ShowMessage("Excel프로그램이 설치되지 않았습니다.");
return ;
}
try
{
Variant WorkBooks = xlApp.OlePropertyGet("WorkBooks");
WorkBooks.OleFunction("Add");
Variant ActiveWorkBook = xlApp.OlePropertyGet("ActiveWorkbook");
Variant WorkSheets = xlApp.OlePropertyGet("Worksheets");
Variant WorkSheet;
Variant Range;
for(i = 0; i < 1; i++)
WorkSheets.OleFunction("Add");
WorkSheet = WorkSheets.OlePropertyGet("Item", i+1);
WorkSheet.OleFunction("Activate");
WorkSheet.OlePropertyGet("Range", "A1:K500").OlePropertyGet("Font").OlePropertySet("Size", 9);
x = 3;
MainForm->msPart2->First();
int r,c;
r = 1;
c = 1;
while(!MainForm->msPart2->Eof)
{
c=1;
tel = MainForm->msPart2->FieldByName("tel")->AsString;
pa1 = MainForm->msPart2->FieldByName("part1")->AsString;
pa2 = MainForm->msPart2->FieldByName("part2")->AsString;
pa3 = MainForm->msPart2->FieldByName("part3")->AsString;
pa4 = MainForm->msPart2->FieldByName("part4")->AsString;
pa5 = MainForm->msPart2->FieldByName("part5")->AsString;
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",tel.c_str());
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",pa1.c_str());
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",pa2.c_str());
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",pa3.c_str());
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",pa4.c_str());
Range = WorkSheet.OlePropertyGet("Cells",r,c++);
Range.OlePropertySet("Value",pa5.c_str());
MainForm->msPart2->Next();
}
WorkSheet.OlePropertySet("Name","통계");
ActiveWorkBook.OleFunction("SaveAs", FilePath ); //Datei speichern
}
catch(...)
{
ShowMessage("이상이 발생했습니다.");
}
|