怎么样导出为excel格式的文件呀。

zw_zhuwei 2004-05-01 10:19:17
我现在一个程序是用ADO连接access 数据库。
可以把他导出为execel 文件格式吗。

当然,控件也行!
...全文
100 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sunliwen780502 2004-05-03

//导出数据到Excel表
void __fastcall TGHCountFrm::btnExportClick(TObject *Sender)
{
Variant ex,newxls,cellms;
AnsiString sFileName;
int row, i, j = 1;

if (SaveDialog1->Execute())
{
try
{
ex = CreateOleObject("Excel.Application");//启动Excel
ex.OlePropertySet("Visible", (Variant)false);//使Excel不可见
newxls = (ex.OlePropertyGet("Workbooks")).OleFunction("Add");//添加一个工作薄
cellms = newxls.OlePropertyGet("ActiveSheet"); //创建工作区
}

catch (...)
{
ShowMessage("无法启动Excel");
return;
}


DataModule1->AQ_GHCountView->Active = true;
DataModule1->AQ_GHCountView->First();

//设置显示标题
row = 1;
ex.OlePropertyGet("Cells", 1, 6).OlePropertySet("Value", "供货单位明细表");
cellms = ex.Exec(PropertyGet("Range") << ("A" + IntToStr(row) + ":A" + IntToStr(row)));

for (i = 0; i < DataModule1->AQ_GHCountView->FieldCount; i++)
{
//将字段名写到工作薄的第二行
cellms.OlePropertyGet("Cells", 2, i + 1).OlePropertySet("Value", (WideString)DataModule1->AQ_GHCountView->Fields->Fields[i]->FieldName);

}

//将数据库中的记录依次写到Excel中
while (!DataModule1->AQ_GHCountView->Eof)
{
j = j + 1;

for (i = 0; i < DataModule1->AQ_GHCountView->FieldCount; i++)
{
cellms.OlePropertyGet("Cells", j + 1, i + 1).OlePropertySet("Value",(WideString)DataModule1->AQ_GHCountView->Fields->Fields[i]->AsString);
}

DataModule1->AQ_GHCountView->Next();

}

sFileName = SaveDialog1->FileName;
newxls.OleProcedure("SaveAs", sFileName.c_str()); //保存Excel文件

ex.OleFunction("Quit");//退出Excel
ex = Unassigned;
newxls = Unassigned;
cellms = Unassigned;
}

}
  • 打赏
  • 举报
回复
sunmedia 2004-05-02
Access ==> Excel
SELECT top 100 INTO [products] in "c:\test.xls" "excel 8.0;" FROM Products
  • 打赏
  • 举报
回复
lovebcb 2004-05-01
Ehlib
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库及相关技术
加入

1167

社区成员

C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
申请成为版主
帖子事件
创建了帖子
2004-05-01 10:19
社区公告
暂无公告