首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载  ┆ 端午节祝福 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>C/C++>C++>如何在C++中将数据库数据分行和列保存到Excel中
如何在C++中将数据库数据分行和列保存到Excel中
来源: 发布时间:2008-06-25 发布人: 浏览: 人次   字体: [ ]  

如何在C++中将数据库数据分行和列保存到Excel中? 程序中的数据在StringGrid控件中显示的,那如何按照StringGrid显示的格式分行分列保存到Excel表格呢?请看如下两种方法的实现:
第一种方法:采用的一格一格填充数据
Variant ExcelApp,WorkBook1,WorkSheet1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

   AnsiString FileName = ExtractFileDir(Application->ExeName )+  "\\a.xls";
   try
    {
       ExcelApp=Variant::CreateObject("Excel.Application");
    }
    catch(...)
    {
       ShowMessage("Sorry!Excel cannot be launched");
       return;
    }
    ExcelApp.OlePropertySet("Visible",true);
    ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open",FileName.c_str());
    WorkBook1=ExcelApp.OlePropertyGet("ActiveWorkBook");
    WorkSheet1=WorkBook1.OlePropertyGet("ActiveSheet");

    for(int i=0;i<StringGrid1->RowCount;i++)
    {
        for(int j=0;j<StringGrid1->ColCount;j++)
        {
            WorkSheet1.OlePropertyGet("Cells", i+1 , j+1 )
                             .OlePropertySet("Value",StringGrid1->Cells[j][i].c_str() ) ;
        }
    }

    ExcelApp.OlePropertyGet("ActiveWorkbook")
            .OleFunction("SaveAs", FileName.c_str());
    ExcelApp.OleFunction("Quit");
    WorkSheet1 = Unassigned;
    WorkBook1 = Unassigned;
    ExcelApp = Unassigned;

}
第二种方法:直接从ADO把数据导出来
Variant ExcelApp;
    Variant WorkBook1;
    Variant Sheet1;
    Variant Range;
    Variant Table;
    Variant QueryTables;
    int Count;
    AnsiString ITemp,IStr;
    AnsiString sSQL,sSQLHj, sWhere, sStartDate, sEndDate, sDate;
    try
    {
        ExcelApp=CreateOleObject ("Excel.Application");
    }
    catch(...)
    {
        ShowMessage("运行出错,请确认装了Excel");
        return;
    }
    ExcelApp.OlePropertyGet("WorkBooks").OleFunction("Add");
    ExcelApp.OlePropertyGet("workbooks").OleFunction("Add", "E:\\Lxrb6.xls");
    WorkBook1=ExcelApp.OlePropertyGet("ActiveWorkBook");
    Sheet1 = WorkBook1.OlePropertyGet("ActiveSheet");
    WorkBook1.OlePropertyGet("Sheets", 1).OleProcedure("Select");
    Sheet1.OlePropertySet("name","小热报6");  
    Range=Sheet1.OlePropertyGet("Range","A9");
    QueryTables=Sheet1.OlePropertyGet("QueryTables");
    sSQL="select * from Table" //这里的数据很多,我随便简化下!
    qryTmp->Active=false;
    qryTmp->SQL->Clear();
    qryTmp->SQL->Add(sSQL);
    qryTmp->Active=true;
    Count=qryTmp->RecordCount+12;
    IStr="A9:M"+IntToStr(Count);      
    Table=QueryTables.OleFunction("Add",qryTmp->Recordset,Range);
    Table.OlePropertySet("FieldNames",false);     
    Range=Sheet1.OlePropertyGet("Range", IStr.c_str());
    Sheet1.OlePropertyGet("Range", "A:K").OlePropertyGet("Columns").OleProcedure("AutoFit"); //自动列宽
    Table.OleProcedure("Refresh",true);
    WorkBook1.OleFunction("SaveAs", "E:\\6.xls");
    ShowMessage("导出完毕,请检查");
    qryTmp->Active=false;
    ExcelApp.Exec(Procedure("Quit"));
    ExcelApp = Unassigned;
看看哪种合适,就用哪种吧,嘻嘻!


↓下一篇:没有了
相 关 文 章   发布商链接
·C语言程序设计入门学习六步曲
·C++不是万能的
·实例详细介绍各种字符集编码转换问题...
·C++实现仿Office风格的颜色选取框代...
·在Linux下验证日期是否合法
·祥解C++中的this指针
·vc读取XML文件中的文本代码
·C++程序中内存划分介绍
·C++计算含括号四则表达式的模板
·vc命令行调用winrar.exe进行文件解压...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何在C++中创建持久对象的方
·c++实现获取IE缓存文件夹中的
·C++中regex库中静态正则表达...
·VC++编写交互程序时将打印结...
·实例讲解C++中CopyFileEx函数
·c++获取Windows 2000/XP操作...
·C++语言中多重继承下的虚函数
·什么是单例模式?C++中单例模...
·基于C++的DES加密算法实现代...
·vc命令行调用winrar.exe进行...
·C++计算含括号四则表达式的模
·C++程序中内存划分介绍
·vc读取XML文件中的文本代码
·祥解C++中的this指针
·在Linux下验证日期是否合法
热 门 文 章
·实例详细介绍各种字符集编码...
·基于C++的DES加密算法实现代...
·vc读取XML文件中的文本代码
·vc命令行调用winrar.exe进行...
·祥解C++中的this指针
·C语言程序设计入门学习六步曲...
·C++语言中多重继承下的虚函数...
·C++不是万能的
·什么是单例模式?C++中单例模...
·在Linux下验证日期是否合法
·VC++编写交互程序时将打印结...
·C++程序中内存划分介绍
·实例讲解C++中CopyFileEx函数...
·C++中regex库中静态正则表达...
·C++计算含括号四则表达式的模...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .