Мне нужно открыть большой файл excel 150 МБ с полумиллионными записями (excel 2007 .xlsx file), и мне нужно перенести его на sql-сервер, я используйте oledbconnection, однако, когда я пытаюсь открыть соединение, это занимает более 5 минут, после чего появляется System.OutMemoryExcepion. Я думаю, что это соединение пытается открыть весь файл в памяти, как я могу читать строки за строкой. Я работаю с визуальными Net 2005 и C#C# При открытии большого файла Excel (150MB) от OledbConnection System.OutOfMemoryException
string archivoExcel="c:\largeExcel.xlsx"
string conneStringInraSIS = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + archivoExcel + ";" +
"Extended Properties='Excel 12.0;HDR=YES;'";
OleDbConnection connexcel = new OleDbConnection(conneStringInraSIS);
connexcel.Open();
Это 150 МБ или 250 МБ? – SLaks
Вы должны построить свою строку соединения с помощью 'OleDbConnectionStringBuilder' вместо того, чтобы вручную конкатенировать строку, или вы потерпите неудачу, если имя файла имеет' ''. – SLaks
Что находится в файле? Может ли он быть сохранен в формате CSV? Кроме того, 2007 Excel - это всего лишь куча зашифрованных XML-файлов. Вы можете манипулировать ими напрямую с помощью текстового чтения, считая, например, 1000 строк за раз. –