2013-09-03 4 views
-3

Мне нужно импортировать excel и вам нужно выполнить какой-то процесс. Данные Excel следует извлекать с помощью C#. Пока я был googled, запутался. Может ли кто-нибудь предоставить код C# для его достижения?Импортировать файл excel с помощью C# .net

Заранее спасибо.

ответ

1

Использование OleDB:

using System.Data.OleDb; 

private void readExcel(string pExcelPath, string pSheetName) 
     { 
      DataTable sheet1 = new DataTable(); 
      OleDbConnectionStringBuilder csbuilder = new OleDbConnectionStringBuilder(); 
      csbuilder.Provider = "Microsoft.ACE.OLEDB.12.0"; 
      csbuilder.DataSource = pExcelPath; 
      if (excelFirstRowIsHeader == true) 
       csbuilder.Add("Extended Properties", "Excel 12.0 Xml;HDR=YES"); 
      else 
       csbuilder.Add("Extended Properties", "Excel 12.0 Xml;HDR=NO"); 

      using (OleDbConnection connection = new OleDbConnection(csbuilder.ConnectionString)) 
      { 
       connection.Open(); 
       string sqlQuery = @"SELECT * FROM [" + pSheetName + "]"; 
       using (OleDbDataAdapter adapter = new OleDbDataAdapter(sqlQuery, connection)) 
       { 
        adapter.Fill(sheet1); 
        excelData_dataGridView.DataSource = sheet1; 
       } 
       connection.Close(); 
      } 
     } 

Этот код поддерживает Excel-файлы, созданные с помощью Excel 2007/2010. Булева excelFirstRowIsHeader используется для specifiy, если ваш первенствует содержит строку заголовка (если первая строка в Excel лист используется заголовок)

Вы также можете использовать Interop-ассамблею, чтобы прочитать файл Excel, но дл него MS Excel должен быть установлен.

+0

Спасибо за ваш код. Во время его запуска было создано следующее исключение. «Механизм базы данных Microsoft Office Access не может открыть или записать в файл« E: \ 09-2013 \ SalesRep ». Он уже открыт исключительно другим пользователем или вам необходимы разрешения на просмотр и запись его данных». Я следил за этим сайтом, чтобы решить эту проблему. http://www.aspdotnet-suresh.com/2013/01/c-microsoft-office-access-database.html. Тем не менее я получаю то же исключение. Путь к файлу: E: \ 09-2013 \ SalesRep. Имя файла: Openleads.xlsx. Пожалуйста, помогите мне решить это? –

+0

Ну, может быть несколько причин: 1. Учетная запись, которая используется IIS, не имеет разрешений Windows NT для файловой базы данных или для папки, содержащей файл 2. Он действительно используется другим процессом 3. БД связана с другой базой данных на сетевом диске. У меня никогда не было этой ошибки –

+0

Спасибо за ваш ответ –

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