複数の行と列を持つ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 に答える