2012-02-10 4 views
1

Привет, я читаю файл excel с oledb (Файл имеет 100000 строк). Я должен быстро прочитать файл.Прочтите файл Excel с помощью OLEDB?

string conn; 

       conn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + 
       ("Data Source=" + _filename + ";" + 
       "Extended Properties=\"Excel 12.0;\"")); 
       OleDbConnection oleDBCon = new OleDbConnection(conn); 
       oleDBCon.Open(); 
       DataTable dt = oleDBCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
       string excelsheetname = dt.Rows[0].ItemArray[2].ToString(); 
       string SSQL = "SELECT * from [" + excelsheetname + "]"; 

       OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); 
       DataSet ds = new DataSet(); 
       oleDA.Fill(ds); 
       DataTable _DtTable = ds.Tables[0]; // or [ ds ] 
       oleDBCon.Close(); 

, а затем в _DtTable с петлей для меня вставив эти клетки к БД .. Как я могу читать это очень большой первенствует быстро? И вставить в БД? Я использовал Parallel.For, но это не настоящее решение для меня .. Любая идея?

ответ

1

Для добавления записи в таблицу MyTable с помощью ADO, вы можете использовать код, подобный следующему:

'Create a new connection object for Book1.xls 
Dim conn As New ADODB.Connection 
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;" 
conn.Execute "Insert into MyTable (FirstName, LastName)" & _ 
    " values ('Bill', 'Brown')" 
conn.Execute "Insert into MyTable (FirstName, LastName)" & _ 
    " values ('Joe', 'Thomas')" 
conn.Close 

Это от MSDN: http://support.microsoft.com/kb/247412

+0

Я, вероятно, не читал достаточно внимательно. Вы хотите прочитать excel и вставить в другой БД, возможно, SQL Server, а не вставлять записи в файл Excel. Чтобы прочитать файлы excel, я предпочитаю использовать ExcelDataReader от http://exceldatareader.codeplex.com/ – Digvijay

+0

спасибо! но в первой строке говорится: «Легкая и быстрая библиотека, написанная на C# для чтения файлов Microsoft Excel ('97 -2007)». У меня есть файлы Excel 03/07/10. Поддерживает ли ExcelDataReader файлы excel 2010? – mekar10

+0

да он поддерживает excel 2010 спасибо .. – mekar10

1

Сделать использование OpenXML в SQL для вставки данных в объеме, которые делают Fater работу для вас

здесь код сделал мной для той же работы: Bulk Insertion of Data Using C# DataTable and SQL server OpenXML function

+0

Это полезное решение для вставки? Я не устал? Вы уверены, что ваш код более эффективен, чем классический для цикла на Datatable (например, напишите)? – mekar10

+0

@mehmetkarpuz - да, я попробовал и это sowkr для меня –

1

Вы можете посмотреть на некоторые из способов, база данных может потреблять Excelfiles

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