zhouleibbt 2023-02-06 18:43 采纳率: 100%
浏览 35
已结题

mfc获取excel单元格的货币符号

MFC读取excel某个单元格的数据,单元格数据类型为货币,目前只能获取到单元格的货币数值,但是无法获取货币符号。如何才能获取当前单元格的货币符号。

  • 写回答

5条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-06 18:48
    关注

    用OLE Automation库中的Excel Application对象,通过该对象的Currency以及NumberFormat属性来获取货币单元格的货币符号。

    #include <iostream>
    #include <atlcom.h>
    #include <atlbase.h>
    #include <Excel.h>
    
    int main() {
        CComPtr<Excel::_Application> app;
        HRESULT hr = app.CoCreateInstance(L"Excel.Application");
        if (FAILED(hr)) {
            std::cout << "Failed to create Excel application." << std::endl;
            return -1;
        }
    
        CComPtr<Excel::Workbooks> workbooks;
        app->get_Workbooks(&workbooks);
    
        CComPtr<Excel::_Workbook> workbook;
        workbooks->Open(CComVariant(L"file.xlsx"), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), CComVariant(), &workbook);
    
        CComPtr<Excel::Sheets> sheets;
        workbook->get_Sheets(&sheets);
    
        CComPtr<Excel::_Worksheet> worksheet;
        sheets->get_Item(CComVariant(1), &worksheet);
    
        CComPtr<Excel::Range> range;
        worksheet->get_Range(CComBSTR("A1"), &range);
    
        CComVariant value;
        range->get_Value2(&value);
    
        CComVariant currencyFormat;
        range->get_NumberFormat(&currencyFormat);
    
        std::cout << "Currency Value: " << value.bstrVal << std::endl;
        std::cout << "Currency Format: " << currencyFormat.bstrVal << std::endl;
    
        workbook->Close();
        app->Quit();
    
        return 0;
    }
    
    
    

    用OLE Automation库来创建Excel应用程序,打开Excel文件,读取货币单元格的数值和格式。货币符号可以在输出中的Currency Format行中获取。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 修改了问题 2月6日
  • 创建了问题 2月6日

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器