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;
接下来只需扫描这个数组即可。
我有一个 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;
接下来只需扫描这个数组即可。