2017-04-21 1 views
0

직장에서 나는 과거에 closedXML을 사용하여 데이터 테이블이나 데이터 세트에서 루핑하지 않고 매우 빠르게 엑셀을 만들었습니다. 이제 다른 방법으로 가야하지만 닫힌 XMl이나 Excel에서 데이터 테이블로 이동할 수있는 유일한 문서는 루프입니다. 현재 속도에 대한 요구, Excel에 들어가는 많은 양의 데이터 및 루핑보다 빠른 방법을 찾지 못한 Office의 광범위한 사용으로 나는 상상할 수 없습니다.closedxml을 루핑하지 않고 datatable에

폐쇄 형 XML 또는 루프를 사용하지 않고 데이터 세트와 같은 다른 system.data 객체로 신속하게 이동하는 합리적인 크기의 안전한 라이브러리에 방법이 있습니까?

+0

. 나는 그것이 당신에게서 추상화 되더라도, 피할 수 있다고 생각하지 않습니다. – Crowcoder

+0

왜 처음부터 루프를 피고 싶습니까? – C1rdec

+0

루핑은 매우 느리다. – davidp04

답변

0

당신은 DataTable으로 워크 시트에서 데이터를 읽을 수있는 일반에 OLEDB 연결을 사용할 수 있습니다 : 나는 ClosedXML의 내부에서 루프가 확신

string strExcelConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\filename.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;'"; 
using (OleDbConnection connExcel = new OleDbConnection(strExcelConn)) 
{ 
    string selectString = "SELECT * FROM [CA$A1:D500]"; 
    using (OleDbCommand cmdExcel = new OleDbCommand(selectString,connExcel)) 
    { 
     cmdExcel.Connection = connExcel; 
     connExcel.Open(); 
     DataTable dt=new DataTable();      
     OleDbDataAdapter adp = new OleDbDataAdapter(); 
     adp.SelectCommand = cmdExcel; 
     adp.FillSchema(dt, SchemaType.Source); 
     adp.Fill(dt); 
     int range=dt.Columns.Count; 
     int row = dt.Rows.Count; 
    } 
} 
+0

그 작품, 고마워요. – davidp04

관련 문제