Читать файл Excel с OLEDB? - PullRequest
       4

Читать файл Excel с OLEDB?

1 голос
/ 10 февраля 2012

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

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 с циклом for я вставляю эти ячейки в БД. Как я могу быстро прочитать этот очень большой Excel?И вставить в БД?Я использовал Parallel.For, но это не настоящее решение для меня .. Есть идеи?

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

Чтобы добавить записи в 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

1 голос
/ 10 февраля 2012

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

1 голос
/ 10 февраля 2012

Используйте OpenXML для SQL для массового ввода данных, которые работают для вас лучше

Вот код, который я сделал для той же работы: Массовая вставка данных с использованием C # DataTable и сервера SQL OpenXMLфункция

...