大侠救命:帮我看看下面的代码,为什么数据表保存为Excel是一个空文件?
大侠帮帮我:我用BCB6开发,使用Office2K 控件。
为什么将数据表保存为Excel后,该Excel文件没有数据?
是哪出错了?万分感激,一定给分。
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
AnsiString filename;
SaveDialog1->Options.Clear();
SaveDialog1->Options << ofAllowMultiSelect << ofFileMustExist;
SaveDialog1->Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
SaveDialog1->FilterIndex = 0; // start the dialog showing *.xls files
if (SaveDialog1->Execute())
filename=SaveDialog1->FileName;
CGauge1->MaxValue=IBTable1->RecordCount;
//新建一工作簿
ExcelApplication1->Connect(); //连接EXcel服务器
ExcelApplication1->Workbooks->Add(); //增加一工作簿
ExcelWorkbook1->ConnectTo(ExcelApplication1->ActiveWorkbook);
ExcelWorksheet1->ConnectTo(ExcelWorkbook1->ActiveSheet);
ExcelWorksheet1->Cells->set_Item((Variant)1, (Variant)1, (Variant)"item");
ExcelWorksheet1->Cells->set_Item((Variant)1, (Variant)2, (Variant)"line");
ExcelWorksheet1->Cells->set_Item((Variant)1, (Variant)3, (Variant)"amount0");
ExcelWorksheet1->Cells->set_Item((Variant)1, (Variant)4, (Variant)"amount1");
IBTable1->First();
int i=2; //start from row 2,row 1 is title
while(!IBTable1->Eof)
{
ExcelWorksheet1->Cells->set_Item((Variant)i, (Variant)1, (Variant)IBTable1->FieldByName("item")->AsString);
ExcelWorksheet1->Cells->set_Item((Variant)i, (Variant)2, (Variant)IBTable1->FieldByName("line")->AsString);
ExcelWorksheet1->Cells->set_Item((Variant)i, (Variant)3, (Variant)IBTable1->FieldByName("amount0")->AsString);
ExcelWorksheet1->Cells->set_Item((Variant)i, (Variant)4, (Variant)IBTable1->FieldByName("amount1")->AsString);
i++;
CGauge1->AddProgress(1);
IBTable1->Next();
}
ExcelWorksheet1->SaveAs(WideString(filename)); //save the excel file
ExcelApplication1->Disconnect();
ExcelApplication1->Quit();
}