0

複数の行と列を持つExcelシートを持っています.NETアプリケーションのデータセットで取得しています(C#を使用)。単純な SELECT クエリで返されたデータセットを見ると、Excel シートには必要な列が含まれており、それらの間に空白の列がいくつかあり、デフォルトでは F1、F2、F3 などの名前が付けられています。私がやりたいのは、これらの列を削除して、必要な列だけを取得することです。前もって感謝します。

4

2 に答える 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 に答える