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 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效