큰 엑셀 파일을 반 밀론 레코드 (엑셀 2007 .xlsx 파일)로 열어야하고, SQL 서버로 마이그레이션해야합니다. oledbconnection을 사용하십시오. 그러나 연결을 열려고하면 5 분 이상 걸리고 그 후에 System.OutMemoryExcepion이 나타납니다. 이 연결은 메모리에있는 모든 파일을 열려고 시도합니다. 어떻게 행을 읽을 수 있습니까? 나는 비주얼 넷 2005 C#C# OledbConnection System.OutOfMemoryException에 의해 큰 Excel 파일 (150MB)을 엽니 다.
(의견의 정보를 기반으로)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();
150MB 또는 250MB입니까? – SLaks
문자열을 수동으로 연결하는 대신'OleDbConnectionStringBuilder'를 사용하여 연결 문자열을 만들어야합니다. 그렇지 않으면 파일 이름에'''가있을 경우 실패합니다. – SLaks
파일에 무엇이 있습니까? 대신 CSV 형식으로 저장할 수 있습니까? 또한 2007 Excel은 압축 된 XML 파일 일뿐입니다. 한 번에 1,000 줄을 읽는 텍스트 리더로 직접 조작 할 수 있습니다. –