我是C ++ / CLI的新手,我在打开Excel文件时遇到了麻烦。这是我的以下代码示例。
#using <system.dll>
using namespace System;
using namespace Microsoft::Office::Interop::Excel;
String ^filename = gcnew String(L"Test.xlsx");
try
{
Application^ exapp = gcnew ApplicationClass();
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,
Type::Missing, Type::Missing);
Worksheet^ exws = safe_cast<Worksheet^>(exapp->ActiveSheet);
exws->Cells[1, 1] = "Hello world";
return true;
Console::WriteLine("File Read Successfully");
}
catch (Exception ^e)
{
Console::WriteLine("Failed to read File");
Console::WriteLine(e);
return false;
};
每当我运行它时,它总会抛出FileNotFoundException
,即使Excel文件就在Test.exe旁边,除非我将文件名更改回完整路径,如C:\Users\NGU0085\Documents\Visual Studio 2013\Projects\Test\Debug\Test.xlsx
有没有办法用相对路径打开Excel文件?
答案 0 :(得分:1)
可能当前目录未设置为您所期望的。当前目录可以更改,而无需在代码中明确更改它,因此您不应该真正依赖它是您期望的。
解决方案是将您的相对路径转换为绝对路径。使用此answer获取应用程序目录,并将“Test.xlsx”添加到该路径。
答案 1 :(得分:0)
你可以使用这个函数System.Reflection.Assembly.GetExecutingAssembly()。Location