gpt4 book ai didi

c++ - 使用 C++/CLI 打开和读取 Excel 文件

转载 作者:太空狗 更新时间:2023-10-29 21:25:55 25 4
gpt4 key购买 nike

我正在尝试使用 C++/CLI 创建一个程序,该程序使用 Visual Studio 从 Excel 工作簿中读取一些数据。我已将 Microsoft.Office.Interop.Excel (v12) 添加到项目属性的引用中。我的基本目标只是将单元格的值作为字符串获取(工作簿仅包含文本值)。我当前的代码如下(当然只包括主要部分):

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace Microsoft::Office::Interop::Excel;

start(void){
Microsoft::Office::Interop::Excel::Application^ exApp= gcnew Microsoft::Office::Interop::Excel::ApplicationClass();
String^ filename="e:\\test.xls";
Workbook^ wb = exApp->Workbooks->Open(filename, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing);
Worksheet^ exWs = safe_cast<Worksheet^>(exApp->ActiveSheet);
int row=1;
int col=1;
String^ tmp=((Microsoft::Office::Interop::Excel::Range^)exWs->Cells[(System::Object^)row, (System::Object^)col])->Value2->ToString();
MessageBox::Show(tmp);
}

当我运行它时,它崩溃并出现以下错误:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in exc2.exe

Additional information: Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

当我尝试打开工作簿(在以“Workbook^ wb = exApp->Workbooks->Open”开头的行时,xls 和 xlsx 文件都会发生这种情况 - 所以我什至无法检查其余部分是否在职的)。请帮忙,我错过了什么/做错了什么?

提前谢谢你。

最佳答案

好吧,我终于找到了主要问题,如果其他人遇到同样的问题:

打开 Excel 文件时,Windows 和已安装的 Excel 程序的区域设置必须相同。我住在匈牙利,在 Windows 中使用匈牙利区域设置 [注意:我使用英文 Windows,只是区域设置不同],并且我有英文版的 Excel。一旦我将 Windows 中的区域设置切换到美国 [与 Excel 的区域相同],清理并重建解决方案,一切都开始像魅力一样工作。

(我不确定消息框部分是否在我的代码中起作用,同时我更改了它,主要问题是打开文件)

关于c++ - 使用 C++/CLI 打开和读取 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com