如何指定打开 excel 文件的字符串路径?
How to specify string path for opening excel file?
知道 excel 文件的文件名将始终更改或至少插入最近保存的 excel,我将如何指定用于打开 excel 文件的字符串路径] 该文件夹中的文件到字符串路径?例如,
string PATH = @"C:\myFileNameWillAlwaysCHange.xlms or mostRecentFile.xlms";
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PATH + ";Extended Properties=Excel 12.0";
我想知道 excel 文件所在的文件夹是否将是唯一的 excel 文件,如果有一种方法可以根据任何(仅)excel 该文件夹中的文件并将其插入字符串路径?
你可以这样做
string PATH = Directory.GetFiles("C:\", "*.xlms").Single();
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PATH + ";Extended Properties=Excel 12.0";
如果您不希望它在找到更多文件时抛出异常,请将 Single
替换为 First
。
如果您不希望它在没有匹配文件时抛出异常,请将 Single
替换为 FirstOrDefault
并添加 null
check
编辑
获取最新文件:
string PATH = Directory.GetFiles("C:\", "*.xlms").Select(f => new FileInfo(f)).OrderByDescending(fi => fi.CreationTime).First().FullName
根据我从您的问题中收集到的信息,您正在寻找 Excel 文件的路径,该文件应该是给定目录中唯一的此类文件。在这种情况下,您可以这样做:
string path= Directory.GetFiles("C:\YourDirectory", "*.xlms").Single();
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0";
这将在给定目录中获取具有给定文件扩展名的文件,然后通过对其执行 Single()
调用来断言只有一个。如果文件夹中存在多个这样的文件,那么您将得到 InvalidOperationException
.
编辑
要获取最新的文件(我选择按创建时间排序,但如果您愿意,也可以使用修改日期),您可以这样做:
DirectoryInfo info = new DirectoryInfo("C:\YourDirectory");
string path = info.GetFiles("*.xlms").OrderByDescending (fi => fi.CreationTimeUtc).First().FullName;
这没有异常处理,所以如果 First()
调用没有 return 任何东西,您将需要处理它。
我了解到您正在寻找一个文件夹中的所有 Excel 个文件。
这是代码:
try
{
string PATH = @"C:\YourFolderPath";
DirectoryInfo Dir = new DirectoryInfo(PATH);
FileInfo[] FileList = Dir.GetFiles("*.xls*", SearchOption.AllDirectories );
foreach (FileInfo FI in FileList )
{
Console.WriteLine(FI.FullName);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message );
}
在 foreach 里面你可以放任何你想要的代码
知道 excel 文件的文件名将始终更改或至少插入最近保存的 excel,我将如何指定用于打开 excel 文件的字符串路径] 该文件夹中的文件到字符串路径?例如,
string PATH = @"C:\myFileNameWillAlwaysCHange.xlms or mostRecentFile.xlms";
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PATH + ";Extended Properties=Excel 12.0";
我想知道 excel 文件所在的文件夹是否将是唯一的 excel 文件,如果有一种方法可以根据任何(仅)excel 该文件夹中的文件并将其插入字符串路径?
你可以这样做
string PATH = Directory.GetFiles("C:\", "*.xlms").Single();
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PATH + ";Extended Properties=Excel 12.0";
如果您不希望它在找到更多文件时抛出异常,请将 Single
替换为 First
。
如果您不希望它在没有匹配文件时抛出异常,请将 Single
替换为 FirstOrDefault
并添加 null
check
编辑
获取最新文件:
string PATH = Directory.GetFiles("C:\", "*.xlms").Select(f => new FileInfo(f)).OrderByDescending(fi => fi.CreationTime).First().FullName
根据我从您的问题中收集到的信息,您正在寻找 Excel 文件的路径,该文件应该是给定目录中唯一的此类文件。在这种情况下,您可以这样做:
string path= Directory.GetFiles("C:\YourDirectory", "*.xlms").Single();
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0";
这将在给定目录中获取具有给定文件扩展名的文件,然后通过对其执行 Single()
调用来断言只有一个。如果文件夹中存在多个这样的文件,那么您将得到 InvalidOperationException
.
编辑 要获取最新的文件(我选择按创建时间排序,但如果您愿意,也可以使用修改日期),您可以这样做:
DirectoryInfo info = new DirectoryInfo("C:\YourDirectory");
string path = info.GetFiles("*.xlms").OrderByDescending (fi => fi.CreationTimeUtc).First().FullName;
这没有异常处理,所以如果 First()
调用没有 return 任何东西,您将需要处理它。
我了解到您正在寻找一个文件夹中的所有 Excel 个文件。
这是代码:
try
{
string PATH = @"C:\YourFolderPath";
DirectoryInfo Dir = new DirectoryInfo(PATH);
FileInfo[] FileList = Dir.GetFiles("*.xls*", SearchOption.AllDirectories );
foreach (FileInfo FI in FileList )
{
Console.WriteLine(FI.FullName);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message );
}
在 foreach 里面你可以放任何你想要的代码