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

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

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

//Excel.hpp
//需要在头文件中添加如下的头文件及创建宏,此宏的原作者为ccrun
#include 
//读取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");
}

你可能感兴趣的:(C++Builder)