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(¤cyFormat); 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行中获取。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 iOS绕地区网络检测
- ¥15 python验证码滑块图像识别
- ¥15 根据背景及设计要求撰写设计报告
- ¥15 QT6颜色选择对话框显示不完整
- ¥20 能提供一下思路或者代码吗
- ¥15 用twincat控制!
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥15 DS18B20内部ADC模数转换器