2015-04-20 32 views
-1
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); 

    connExcel.Close(); 

    //Read Data from First Sheet 
    connExcel.Open(); 
    cmdExcel.CommandText = "SELECT * From [" + SheetName + "]"; 

    oda.SelectCommand = cmdExcel; 
    oda.Fill(dt); 
    connExcel.Close(); 
    GridView1.Caption = Path.GetFileName(FilePath); 
    GridView1.DataSource = dt; 
    GridView1.DataBind(); 

我正在导入Excel工作表,但代替空值我希望数据集显示为空而不是空值。如何在导入Excel表格时显示数据集中的空值而不是空白

+1

您可能需要更好地解释这个问题。您是否有例外或输出错误的例子? – DotNetHitMan

+0

你希望它真的显示'null'? – Jens

+0

添加了一个语言标记并试图使其更具可读性。您可能仍想添加更多关于您想要发生的细节。 – nvoigt

回答

2

您需要将方法添加到RowDataBound事件中,然后遍历每个单元格。如果其含量null我们把它设置为"null"

void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    for(int i = 0; i < GridView1.Columns.Count, i++) 
    { 
     if(String.IsNullOrEmpty(e.Row.Cells[i].Text)) 
     { 
      e.Row.Cells[i].Text = "null"; 
     } 
    } 

} 

如果你想这样做,你需要首先遍历每个行,然后检查细胞样证明由Tim Schmelter here上述事件外:

foreach(GridViewRow row in GridView1.Rows) 
{ 
    for(int i = 0; i < GridView1.Columns.Count, i++) 
    { 
     if(String.IsNullOrempty(row.Cells[i].Text)) 
     { 
      row.Cells[i].Text = "null"; 
     } 
    } 
} 
+1

我想你应该删除!在你的条件之前,或者其他每一行,但空或空的行将被设置为“空”。 – Fjodr

+0

哦,亲爱的。那会很尴尬。谢谢。 – Marco

相关问题