C++ Builder中导入Excel表格数据

来源:互联网 发布:万维网中文域名到期 编辑:程序博客网 时间:2024/06/06 00:01

撰写本文思路主要来自于www.ccrun.com

/**********************************
**编写工具及平台
**C++ Builder 6.0
** WIN7 X86
**Excel表格类型:Microsoft Excel 97-2003 工作表
***********************************/

//Excel.hpp//需要在头文件中添加如下的头文件及创建宏,此宏的原作者为ccrun#include <OleServer.hpp>//读取Excel导入信息时,为方便操作建立的宏#define   PG   OlePropertyGet#define   PS   OlePropertySet#define   FN   OleFunction#define   PR   OleProcedure
//Excel.cpp#include "Comobj.hpp"OpenDialog1->Filter = "execl文件(.xls)|*.xls";OpenDialog1->DefaultExt = "*.xls";if (OpenDialog1->Execute()){    Variant ExcelApp;       //ExcelApplication    Variant Workbook1;      //ExcelWorkbook      Variant Sheet1;    try    {       ExcelApp = Variant::CreateObject("Excel.Application");    }    catch(...)    {       ::MessageBox(0, "无法启动 Excel,请检查 Excel程序 是否安装。", "加载Excel数据", MB_OK | MB_ICONWARNING);       return;    }    //上述工程创建代码必须要进行初始化。这一步非常重要    //下述代码在打开workbook及worksheet时,为了保持兼容性,需要强制转化String为WideString类型。             ExcelApp.PG(WideString(L"Workbooks")).FN(WideString(L"open"), WideString(OpenDialog1->FileName));    //初始化Workbook    Workbook1 = ExcelApp.PG(WideString(L"ActiveWorkbook"));    //初始化Sheet    Sheet1 = Workbook1.PG(WideString(L"ActiveSheet"));    //获取当前Sheet名称    FSheetName = Sheet1.PG(WideString(L"name"));    //获取单元格中的数据信息,其中row及col为单元格所在行号及列号    AnsiString ansCellData;    ansCellData = Sheet1.PG("Cells", row, col).PG("Value");}
1 0
原创粉丝点击