C++/CLI 如何使用相对路径打开 Excel 文件?
C++/CLI How to open Excel file using relative path?
我对 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 文件吗?
可能当前目录没有按照您的预期设置。当前目录可以更改,而无需您在代码中明确更改它,因此您不应该真正依赖它是您所期望的。
解决办法是把你的相对路径变成绝对路径。使用此 answer 获取应用程序的目录,并将 "Test.xlsx" 添加到该路径。
你可以使用这个函数 System.Reflection.Assembly.GetExecutingAssembly().Location
我对 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 文件吗?
可能当前目录没有按照您的预期设置。当前目录可以更改,而无需您在代码中明确更改它,因此您不应该真正依赖它是您所期望的。
解决办法是把你的相对路径变成绝对路径。使用此 answer 获取应用程序的目录,并将 "Test.xlsx" 添加到该路径。
你可以使用这个函数 System.Reflection.Assembly.GetExecutingAssembly().Location