winform导入Excel的时候,如果Excel中有一行,或者多行是空的。怎么把空行删除掉呢?下面是小弟自己弄的,不过只能删除一行空行,如果在一起的空行多了就行不通了。我要把所有的空行都删除,怎么弄,大家帮帮看看!!!//先用oleDB把Excel数据读取存放到一个DataTable中
DataTable dataTable = xlsData(txtPath.Text.Trim()).Tables[0];
//循环遍历DataTabel
for (int i = 1; i < dataTable.Rows.Count; i++)
{
     //如果DataTable出现一整行为空,则删除这一行
     if (dt.Rows[i][0].ToString() == "" && dt.Rows[i][1].ToString() == "" 
         && dt.Rows[i][2].ToString () == ""   && dt.Rows[i][3].ToString() == "" 
         && dt.Rows[i][4].ToString() == "" && dt.Rows[i][5].ToString() == "" 
         && dt.Rows[i][6].ToString() == "" && dt.Rows[i][7].ToString() == "" 
         && dt.Rows[i][8].ToString() == "")
      {
         dt.Rows.Remove(dt.Rows[i]);
      }
}

解决方案 »

  1.   

    for (int i = dataTable.Rows.Count-1; i >0; i--)
      

  2.   

    如果使用vsto,就好办,判断是否为null,就够了!Excel.Range rngCell = oSheet.get_Range("A1",Type.missing);
    if(rngCell.Value2==null)
    {
        //不读取
    }
    参考资料:
    使用 Visual Studio 2005 Tools for Office (VSTO)开发C# Excel 程序
      

  3.   

    你在查询里写select * from [**$] where 某列 is not null
    这样DATATABLE 中就不会有空行了
      

  4.   

     foreach (DataRow copyRow in copyRows)
                {
                    DataRow r = dt2.NewRow();                           foreach (DataColumn Column in dt1.Columns)
                    {
                        //MessageBox.Show(dt2.Columns[Column.ColumnName].DataType.ToString());
                        if (Column != null)//非空
                        { 
                              if (copyRow[Column.ColumnName] != DBNull.Value)
                              {
                               r[Column.ColumnName] = copyRow[Column.ColumnName]; 
                              }
                              else
                              {
                                  switch(dt2.Columns[Column.ColumnName].DataType.ToString())
                                                                }                          
                                                        
                              }                        
                        }