我有一个包含多行和多列的 excel 表,我在我的 .NET 应用程序(使用 C#)的数据集中获取它。当我通过一个简单的 SELECT 查询看到返回的数据集时,excel 表具有我想要的所需列,并且它们之间还有一些空白列,默认情况下被命名为 F1、F2、F3 等。我想要做的是删除这些列,只获取我想要的所需列。提前致谢。
问问题
1340 次
2 回答
2
用 DataTable 和 DataView 试试:
DataTable oldTable = dataSet.Tables[0];
DataTable newTable = oldTable.DefaultView.ToTable(false, "Only columns you want", "Only columns you want");
如果所有列名都是动态的,您可以试试这个:
for (int col = dataTable.Columns.Count - 1; col >= 0; col--)
{
bool removeColumn = true;
foreach (DataRow row in dataTable.Rows)
{
if (!row.IsNull(col))
{
removeColumn = false;
break;
}
}
if (removeColumn)
dataTable.Columns.RemoveAt(col);
}
或更短的 LinQ 版本:
for (var col = dataTable.Columns.Count - 1; col >= 0; col--)
{
bool removeColumn = dataTable.Rows.Cast<DataRow>().All(row => row.IsNull(col));
if (removeColumn)
dataTable.Columns.RemoveAt(col);
}
于 2013-04-18T09:44:32.090 回答
0
@Yeronimo
您对动态列的回答工作正常...非常感谢先生...
以及一些可能有帮助的相关文章
于 2013-04-22T18:19:39.823 回答