MFC导出数据到excel表时,出现找不到excel所对应版本的问题

在ExcelFile.cpp源文件中添加判断语句

原来的:

BOOL CExcelFile::InitExcel()  
{  
    //创建Excel 2000服务器(启动Excel)   
    if (!excel_application_.CreateDispatch(_T("Excel.Application"),NULL))   
    {   
        AfxMessageBox(_T("创建Excel服务失败,你可能没有安装EXCEL,请检查!"));   
        return FALSE;  
    }  
  
    excel_application_.put_DisplayAlerts(FALSE);   
    return TRUE;  
}  

添加过后:

BOOL CExcelFile::InitExcel()  
{  
    if (S_OK != CoInitialize(NULL)) {
        //cerr << "Initialize com failed..." << endl;
        return -1;
    }
    //创建Excel 2000服务器(启动Excel)   
    if (!excel_application_.CreateDispatch(_T("Excel.Application"),NULL))   
    {   
        AfxMessageBox(_T("创建Excel服务失败,你可能没有安装EXCEL,请检查!"));   
        return FALSE;  
    }  
  
    excel_application_.put_DisplayAlerts(FALSE);   
    return TRUE;  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MFC对话框项目中,将Edit Control中显示的多次运行的数据保存在Excel中,可以按照以下步骤进行操作: 1. 在SaveExcelTestDlg.h头文件中定义一个CString类型的数组,用于存储多次运行的数据。例如:CString InsData[100]; int n; 2. 在对话框中添加一个按钮,用于保存数据Excel。 3. 在按钮的响应函数中,使用COleVariant和COleSafeArray类来操作Excel。 4. 打开Excel应用程序,创建一个工作簿和一个工作表。 5. 将数据写入工作表中。 6. 保存工作簿并关闭Excel应用程序。 下面是一个示例代码,可以参考: ``` void CSaveExcelTestDlg::OnSaveToExcel() { // 打开Excel应用程序 COleVariant app; app.CreateObject(L"Excel.Application"); // 创建一个工作簿 COleVariant workbooks; workbooks = app.GetProperty(L"Workbooks"); workbooks.InvokeMethod(L"Add"); // 获取工作表 COleVariant workbook; workbook = app.GetProperty(L"ActiveWorkbook"); COleVariant worksheets; worksheets = workbook.GetProperty(L"Worksheets"); COleVariant worksheet; worksheet = worksheets.GetProperty(L"Item", COleVariant((short)1)); // 将数据写入工作表中 for (int i = 0; i < n; i++) { COleVariant value(InsData[i]); COleSafeArray saRet; DISPPARAMS dispParams = { &value, NULL, 1, 0 }; worksheet.InvokeMethod(L"Cells", dispParams, saRet); COleVariant row(i + 1); COleVariant column(1); COleVariant cell; cell = worksheet.GetProperty(L"Cells", row, column); cell.PutValue(InsData[i]); } // 保存工作簿并关闭Excel应用程序 workbook.InvokeMethod(L"SaveAs", COleVariant(L"D:\\test.xlsx")); workbook.InvokeMethod(L"Close", COleVariant((short)0)); app.InvokeMethod(L"Quit"); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值