描述:
1、我开发的一个查询系统中,用到DBGridEh1控件在显示查询数据,
2、使用TADOQuery,DataSource查询出数据源,
如下语句进行实现:
if (RunSql(DM->ADOQuerySQL,Txtsql)) //RunSql执行数据库查询的一个方法,Txtsql是SQL语句
{
if (DM->ADOQuerySQL->RecordCount <= 0)
{
Application->MessageBoxA("未查询到任何记录!","提示",MB_OK|MB_ICONINFORMATION);
return;
}
DataSource1->DataSet = DM->ADOQuerySQL;
FrmInAndOutRecord->DBGridEh1->DataSource = NULL;
FrmInAndOutRecord->DBGridEh1->DataSource = DataSource1;
}
问题:
1、将DBGridEh1内数据导出至Excel,DBGridEh1内的数据量比较大,一般会有几万条,目前所做的导出方法是将DBGridEh1每行数据逐行导出,效率相当低,请问各位同仁,有谁有更好更快的方法来解决效率问题?
1、我开发的一个查询系统中,用到DBGridEh1控件在显示查询数据,
2、使用TADOQuery,DataSource查询出数据源,
如下语句进行实现:
if (RunSql(DM->ADOQuerySQL,Txtsql)) //RunSql执行数据库查询的一个方法,Txtsql是SQL语句
{
if (DM->ADOQuerySQL->RecordCount <= 0)
{
Application->MessageBoxA("未查询到任何记录!","提示",MB_OK|MB_ICONINFORMATION);
return;
}
DataSource1->DataSet = DM->ADOQuerySQL;
FrmInAndOutRecord->DBGridEh1->DataSource = NULL;
FrmInAndOutRecord->DBGridEh1->DataSource = DataSource1;
}
问题:
1、将DBGridEh1内数据导出至Excel,DBGridEh1内的数据量比较大,一般会有几万条,目前所做的导出方法是将DBGridEh1每行数据逐行导出,效率相当低,请问各位同仁,有谁有更好更快的方法来解决效率问题?
ClipBoard具体流程:
将数据转到StringGrid中,
将StringGrid的部分copyto ClipBoard 中
然后 Pasteto Excel的指定Range
文件流以流的形式写入数据集的自己可以先查查相关代码看看
#include <DBGridEhImpExp.hpp>
...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SaveDBGridEhToExportFile(__classid(TDBGridEhExportAsXLS),DBGridEh1,"e:\\temp\\t.xls",true);
}
使用 Excel 打开 html 文件另存为 Excel 文件即可