0
我還沒有找到一種方法來標準化來自Excel與合併單元格的DataTable。當我從該Excel中獲取DataTable時,只有第一個單元格具有該值,其他單元格爲空。DataTable標準化空白單元格
此數據表的一個例子是:
和預期的結果:
總結:空白細胞應與下一個單元的上面的值完成有一個值,因爲Excel合併單元格發生了什麼。
我使用Excel.dll來讀取這個Excel,沒有提供單元格的自動填充,所以這就是爲什麼我在C#中搜索一個方法。
我想,邏輯應該是:如果一個單元格是空白的,使用上面的單元格作爲一個值。邏輯看起來很清晰,但我試圖讓代碼應用它的問題。
這是一個示例,但在最後,我正在尋找一種方法來做到這一點,只要列或行具有數據表。
編輯: 感謝您的快速反饋。 附加到目前爲止只有一列和錯誤,因爲沒有照顧第一行和最後一行,但是這個想法...我試圖實現的是有一個方法任何數量的cols和行(如果cols是用名字固定的話可以確定,然後如果我有更多的專欄我會適應)。
private void NormalizeDataTable(DataTable dtRawTable)
{
DataTable dtFinalized = new DataTable();
dtFinalized.Columns.Add("Col1", typeof(String));
string previousValue = "";
for (int index = 0; index <= dtRawTable.Rows.Count; index++)
{
DataRow dr = dtFinalized.NewRow();
if (index != 0 || index == dtRawTable.Rows.Count -1)
{
if (dtRawTable.Rows[index]["Modelo"].ToString() == "")
{
dr["Col1"] = previousValue;
}
else
{
dr["Col1"] = Convert.ToString(dtRawTable.Rows[index]["Modelo"].ToString());
previousValue = (string)dr["Col1"];
}
}
dtFinalized.Rows.Add(dr);
dtFinalized.AcceptChanges();
}
}
這將是非常困難的,看看爲什麼發生這種情況,沒有看到你的代碼..這可能是多種原因您可以將您的代碼,涉及張貼到你有什麼 – MethodMan
讀通過排片行將幫助...簡單地複製最後一行,如果它們不是空的,則替換單元格值...但是,作爲完成的表格,您可能會循環每行...沒有任何信息,您將要使用它,使得很難幫幫我... –