我一直在尝试将带有多张工作表的Excel文档合并到Datatable中,以便我可以在winform应用程序中显示所述工作表。
从阅读中,我认为Datatable.import(DataRow行)是我最好的选择。因此我的代码如下:
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单元格。任何关于我做错了什么/缺失的见解都将非常感激。
答案 0 :(得分:12)
我认为原因是因为您的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);
}
}
}