closedxml в datatable без зацикливания
На работе в прошлом я использовал closedXML, чтобы перейти от набора данных или набора данных, чтобы преуспеть очень быстро без циклов. Теперь мне нужно пойти другим путем, но единственная документация, которую я могу найти для закрытого XMl или чего-либо еще, чтобы перейти от Excel к Dataatable, - это цикл. Я не могу представить себе нынешнюю потребность в скорости, большие объемы данных, которые могут превратиться в Excel, и широкое использование Office, которое никто не нашел более быстрого способа, чем зацикливание.
Есть ли способ в закрытом XML или другой безопасной библиотеке разумного размера, который быстро перемещает Excel в таблицы данных или другие объекты system.data, такие как наборы данных, без зацикливания?
1 ответ
Вы можете использовать простое соединение OleDb для чтения данных из рабочего листа в DataTable
:
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;
}
}