阅读多个Excel文件

我是CSharp编程的新手。 我有一个要求从一个文件夹中读取多个Excel文件。 我不知道该文件夹中的Excel文件的数量。 我想逐一阅读所有的文件。 要阅读一个单一的文件,我写了一些代码。 我想应用此代码逐个读取文件夹中的所有文件。 请让我知道的方式。 这是我的代码。

class RatWalk { public List<RatStep> steps = new List<RatStep>(); string[] Individal_Runs = Directory.GetFiles(@"C:\Users\AG_Winter\Desktop\Individual_Runs"); public void LoadFromFile(String fileName) // reads data from excel file { steps.Clear(); XlsFile file = new XlsFile(fileName); try { // Everything I wanna do } catch (NullReferenceException ex) { Console.Out.WriteLine("No run"); } } } 

谢谢你们。 我不知道如何回复post,因为评论应该是有限数量的字符。 所以我在这里input。

在我的程序中,我想从一个文件夹中逐一读取xlsx文件。 截至目前,我正在使用一个button浏览单个文件。 但是,然后我想用这个button来浏览我有文件的文件夹。 所以当我select这个文件夹时,程序应该自动运行文件夹中的所有文件。 这是我之前做的。

[\ code = c#] class RatWalk {public List steps = new List();

  public void LoadFromFile(String fileName) // reads data from excel file { steps.Clear(); XlsFile file = new XlsFile(fileName); try{ //everything I wanna do 

} catch {}}

  private void InitializeComponent() { EventHandler handler = new EventHandler(OnClick); button.Text = "Browse for the XLS file"; // button properties this.Controls.Add(button); } private void OnClick(object sender, EventArgs e) // Browses for the file and loads the selected Excel file { OpenFileDialog fileDialog = new OpenFileDialog(); if (fileDialog.ShowDialog() != DialogResult.OK) return; ratWalk.LoadFromFile(fileDialog.FileName); // Whatever I wanna do } 

在这里,我想改变它,当我点击button并select文件夹,它应该运行文件夹中的所有文件一个接一个。

请让我知道如何做到这一点。

谢谢。

我会给你一个例子,让你去做其余的事情。

 string [] fileEntries = Directory.GetFiles(sourceDir); foreach(string fileName in fileEntries) { // do something with fileName Console.WriteLine(fileName); } 

顺便说一句,这不会迭代低谷子文件夹。

  string[] Individal_Runs = Directory.GetFiles(@"D:\testfiles"); foreach (string s in Individal_Runs) { try { String theConnString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + s + ";Extended Properties=Excel 8.0;"; OleDbConnection objConn = new OleDbConnection(theConnString); objConn.Open(); OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn); OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); objAdapter1.SelectCommand = objCmdSelect; DataSet objDataset1 = new DataSet(); objAdapter1.Fill(objDataset1, "XLData"); //Your code here objConn.Close(); } catch (NullReferenceException ex) { Console.Out.WriteLine("No run"); } } 
  1. 获取目标文件夹的path。
  2. 一旦你得到的文件夹,编程取得所有的Excel文件,并把它们放在一个列表中。
  3. 你的代码读取一个excel文件,迭代excel文件的列表,并在循环中使用相同的function。
 using System; using System.IO; namespace FileOperationsSample { class Program { static void Main(string[] args) { // Change this path to the directory you want to read string path = "C:\\Junk"; DirectoryInfo dir = new DirectoryInfo(path); Console.WriteLine("File Name Size Creation Date and Time"); Console.WriteLine("================================================================="); foreach (FileInfo flInfo in dir.GetFiles()) { String name = flInfo.Name; long size = flInfo.Length; DateTime creationTime = flInfo.CreationTime; Console.WriteLine("{0, -30:g} {1,-12:N0} {2} ", name, size, creationTime); } Console.ReadLine(); } } }