2

我一直在尝试将包含许多工作表的 excel 文档合并到一个数据表中,以便我可以在我的 winform 应用程序中显示该工作表。

通过阅读,我认为 Datatable.import(DataRow row) 是我最好的选择。因此我的代码如下所示:

DataTable returnSet = new DataTable();
foreach (DataTable datTab in ds.Tables) // ds is extracted excel sheets in a dataset
{
  foreach (DataRow datRow in datTab.Rows) 
  {
    if (datRow.IsNull(0)) //if empty first col go on to next sheet
    {
      break;
    }
    else
    {
      returnSet.ImportRow(datRow);
    }
  }
}

调试时,它显示 datRow/datTab 是我所期望的,但是在每个 ImportRow 之后,returnSet 仍然是一个空的 1x1 单元格。任何关于我做错/遗漏的见解将不胜感激。

4

1 回答 1

13

我认为原因是因为您的 DataTable 当前没有架构。您可以尝试克隆原始 DataTable 以创建相同的架构(DataColumns 等)。

foreach (DataTable datTab in ds.Tables) // ds is extracted excel sheets in a dataset
{
    DataTable tblClone = datTab.Clone();
    foreach (DataRow datRow in datTab.Rows) 
    {

        if (datRow.IsNull(0)) //if empty first col go on to next sheet
        {
            break;
        }
        else
        {
            tblClone.ImportRow(datRow);
        }
    }
}
于 2012-06-01T20:00:38.027 回答