MFC读写excel文件

这篇博客介绍了如何在MFC应用程序中读写Excel文件。通过导入Excel.exe并使用CApplication, CWorkbooks, CWorkbook, CWorksheets, CWorksheet及CRange等类,可以实现对Excel文件的交互。在解决警告问题时,可能需要处理CRange中涉及VARIANT类型的_DialogBox()函数,可能需要添加下划线前缀。" 82287969,5107221,UE4 Widget点击事件实现,"['UE4', 'Widget', '事件处理']
摘要由CSDN通过智能技术生成

/**

@MyExcel.cpp

*/

#include "stdafx.h"

#include "MyExcel.h"


CMyExcel::CMyExcel()
{
StartApp();
}


CMyExcel::~CMyExcel()
{
books.Close();
sheet.ReleaseDispatch();
    sheets.ReleaseDispatch();
    book.ReleaseDispatch();
    books.ReleaseDispatch();
range.ReleaseDispatch();
ExcelApp.Quit();
    ExcelApp.ReleaseDispatch();
}


//初始化excel程序
void CMyExcel::StartApp(void)
{
//创建Excel 服务器(启动Excel)
    if(!ExcelApp.CreateDispatch(_T("Excel.Application"),NULL))
    {
        AfxMessageBox(_T("启动Excel服务器失败!"));
        return ;
    }
ExcelApp.put_Visible(FALSE);
    ExcelApp.put_UserControl(FALSE);


}


//打开book工作簿
void CMyExcel::OpenWorkBook(const CString &strFilePath)
{
/*得到工作簿容器*/
    books.AttachDispatch(ExcelApp.get_Workbooks());


    /*打开一个工作簿,如不存在,则新增一个工作簿*/
    CString strBookPath = strFilePath;


    /*打开一个工作簿*/
    lpDisp = books.Open(strBookPath, 
            vtMissing, vtMissing, vtMissing, vtMissing, vtMissing,
            vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, 
            vtMissing, vtMissing, vtMissing, vtMissing);
    book.AttachDispatch(lpDisp);
}


//附件1的读取方法
void CMyExcel::ReadExcel(const CString &strFilePath)
{
OpenWorkBook(strFilePath);


/*得到工作簿中的Sheet的容器*/
    sheets.AttachDispatch(book.get_Sheets());
lpDisp = sheets.get_Item(_variant_t((long)1));
sheet.AttachDispatch(lpDisp);
CRange oCurSel;
range.AttachDispatch(sheet.get_UsedRange());


range.AttachDispatch(range.get_Rows());
long row = range.get_Count();


range.AttachDispatch(range.get_Columns());
long col = range.get_Count();


range.AttachDispatch(sheet.get_Cells());
for(int i = 2; i <= row; ++i)
{
for(int j = 1; j <= col; ++j)
{
oCurSel.AttachDispatch(range.get_Item(_variant_t((long)i),_variant_t((long)j)).pdispVal);
VARIANT res =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值