簡體   English   中英

如何獲取 C# 中的.xlsx 文件列表

[英]How to get list of .xlsx file in C#

我正在開發 Windows 表單應用程序,我想在文件夾中有一個 .xlsx 文件的列表說 -

C:\Equipment\Exchanger\AES\

該文件夾可能包含以下文件 -

00-E-001,
00-E-002,
03-E-005,
04-E-001 and so on..

我不想打開文件對話框,但想看到一個顯示文件名(無擴展名)的組合框。 基於 combobox 的選擇,我想在各種文本框中顯示某些單元格的值,但這是后面的部分。

您可以使用 Directory.GetFiles 查詢文件夾中每個 *.xlsx 文件的完整路徑字符串,然后使用 Select 和 Path.GetFileName 將其剝離為文件名。(對我而言)按字母順序對它們進行排序是有意義的,那么您只需將它們放在列表中,以便組合可以使用它們

yourCombo.DataSource = Directory.GetFiles(yourFolderPath, "*.xlsx").Select(Path.GetFileName).OrderBy(n => n.ToLower()).ToList();

如果您不希望組合中的擴展名(這是浪費像素:)),您可以使用 Path.GetFileNameWithoutExtension

當需要獲取用戶選擇的文件時,它是:

var fullPath = Path.Combine(yourFolderPath, yourCombo.SelectedItem);

(如果您使用 GetFilenameWithoutExtension: yourCombo.SelectedItem + ".xlsx" ,則必須重新添加擴展名)


我建議您將組合的 DropDownStyle 設置為 DropDownList

首先,您的代碼應該查看包含所需文件的文件夾。

List<string> xlsxFiles = Directory.GetFiles(yourdirectory, "*.*", SearchOption.AllDirectories)
      .Where(file => new string[] { ".xlsx" }
      .Contains(Path.GetExtension(file)))
      .ToList(); // Looking into directory and filtering files 

    for(int i = 0; i < xlsxFiles.Count; i++)
    {
        xlsxFiles[i] = Path.GetFileName(Path.ChangeExtension(xlsxFiles[i], null)); // Removes files' extensions
    }

這是查看目錄並將文件過濾到所需文件的簡單方法。

然后,我建議查看EPPlus庫,它允許您直接使用表格和單元格,而無需手動提取文件

是使用 EPPlus 的便捷教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM