2015-07-19 11 views
-1

Я использовал openfiledialog и отфильтровывал его, чтобы получить: .xls и .xlsx и .xlsm файлы. , но я не знаю, что делать дальше, я создаю класс рабочих с firstName и lastName, и я хочу взять данные из файла excel и поместить его в переменную.Как читать файлы .xls и .xlsx и .xlsm в C#

Это мой код OpenFileDialog:.

private void ExcelLoad_Click(object sender, EventArgs e) 
    { 
     int size = -1; 
     openFileDialog1.Title = "Browse Excel file"; 
     openFileDialog1.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm"; 
     DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. 
     if (result == DialogResult.OK) // Test result. 
     { 
       string file = openFileDialog1.FileName; 
       try 
       { 
        string text = File.ReadAllText(file); 
        size = text.Length; 
       } 
       catch (IOException) 
       { 
       } 
     } 
     Console.WriteLine(size); // <-- Shows file size in debugging mode. 
     Console.WriteLine(result); // <-- For debugging use. 
     Stream excelOpenFile= openFileDialog1.OpenFile(); 
    } 

так, как я могу прочитать данные из этого вида файлов (это succed, чтобы открыть его, но я не знаю, как использовать этот файл и получить данные из него).

+0

Вам нужно сделать исследование, прежде чем спрашивать здесь. Google «открыть файл Excel в C#» –

+0

Возможный дубликат [Чтение файлов Excel с C#] (http://stackoverflow.com/questions/15828/reading-excel-files-from-c-sharp) –

+0

Возможный дубликат [How открыть файл Excel в C#?] (http://stackoverflow.com/questions/464902/how-to-open-an-excel-file-in-c) – Behzad

ответ

0

Вы должны использовать библиотеку для чтения файлов XLS,

См Reading Excel files from C# & https://github.com/ExcelDataReader/ExcelDataReader

UPDATE 1: Из Github, как использовать его, установить пакет как NuGet пакет.

Рекомендуется использовать NuGet

Install-Package ExcelDataReader

Текущие двоичные файлы по-прежнему на Codeplex сайте, но они будут обновляться не будет идти вперед. Если есть достаточно запросов для отдельного бинарного хостинга, кроме nuget, тогда мы придумаем другое решение .

UPDATE 2: Код для чтения из Excel чтения данных

FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read); 

//1. Reading from a binary Excel file ('97-2003 format; *.xls) 
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 

//2. Reading from a OpenXml Excel file (2007 format; *.xlsx) 
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 

//3. DataSet - The result of each spreadsheet will be created in the result.Tables 
DataSet result = excelReader.AsDataSet(); 

//4. DataSet - Create column names from first row 
excelReader.IsFirstRowAsColumnNames = true; 
DataSet result = excelReader.AsDataSet(); 

//5. Data Reader methods 
while (excelReader.Read()) 
{ 
    //excelReader.GetInt32(0); 
} 

//6. Free resources (IExcelDataReader is IDisposable) 
excelReader.Close(); 

После шага 3, вы будете получать данные Excel в DataSet

DataSet result = excelReader.AsDataSet(); 

Далее, вы можете перебрать DataSet со следующим кодом

foreach (DataColumn col in result.Table[0].Columns) 
{ 
    foreach (DataRow row in result.Table[0].Rows) 
    { 
      Console.WriteLine(row[col.ColumnName].ToString());   
    } 
} 

P .S: Я использовал Table[0], чтобы указать первый DataTable или данные с первого листа excel. вы также можете выполнять итерацию по таблице данных.

+0

Я загружаю git-файл, но как я его использую мой проект? – Nir

+0

Обновлен ответ с информацией «Как установить пакет» – Agalo

+0

спасибо! и у меня есть quation, я написал «excelReader.GetValue (0)» (после того, как все сотрудники раньше), и он работает, но я не могу перейти к другим строкам только к кулонам. что я должен делать – Nir

Смежные вопросы