closedxml到数据表而不循环

closedxml to datatable without looping

在工作中,我过去曾使用 closedXML 非常快速地从数据表或数据集转到 excel 而无需循环。现在我需要走另一条路,但我能找到的关于关闭 XMl 或从 excel 到数据表的任何其他内容的唯一文档是循环。我无法想象当前对速度的需求,可以进入 excel 的大量数据以及 Office 的广泛使用,没有人想出比循环更快的方法。

有没有办法在封闭的 XML 或其他大小合理的安全库中快速移动 excel 到数据表或其他 system.data 对象,例如数据集而不循环?

您可以使用普通 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;
    }
}