Excel table 到数据表 (VSTO)

Excel table to DataTable (VSTO)

我有一个 Excel VSTO 加载项,我必须将 excel table 数据放入 DataTable class,我已经通过遍历单元格但有点慢:

            DataTable dataTable = new DataTable(table.Name);

            foreach (Excel.ListColumn column in table.ListColumns)
                dataTable.Columns.Add(column.Name);

            for (int r = 2; r < table.ListRows.Count + 2; r++)
            {
                DataRow row = dataTable.NewRow();

                for (int c = 1; c < table.ListColumns.Count + 1; c++)
                    row[c - 1] = ((Excel.Range)table.Range[r, c]).Value;

                dataTable.Rows.Add(row);
            }

所以我的问题是,Excel 互操作中是否有任何方法(或快速方法)可以将 table 数据导出到 DataTable class?

谢谢

您可以立即将 table 的 DataBodyRange 中的所有值(我推断为 ListObject)读取到基于 1 的二维对象数组中,如下所示:

var theValues = table.DataBodyRange.Value;

接下来只需扫描这个数组即可。