解決DataTable到CSV轉換中資料合併到單一單元格的問題
在將DataTable匯出到CSV檔案時,使用者可能會遇到資料未正確分隔的問題,導致所有值都顯示在每行的第一個儲存格中。為了解決這個問題,讓我們檢查程式碼並找出潛在的原因。
程式碼先建立一個StringBuilder對象,遍歷DataTable的列,並產生以逗號分隔列名的標題行。接下來,它遍歷DataTable的行並檢索每列的值,將其附加到StringBuilder。然而,問題出現在資料分隔的方式上。
問題在於將資料加入StringBuilder的循環區塊。以下程式碼行用於分隔值:
<code>sb.Append(row[i].ToString() + ",");</code>
這行程式碼在每個資料值之後會在StringBuilder加上逗號。但是,如果每行末尾的逗號未被移除,Excel可能會將資料解釋為單一儲存格而不是單獨的值。
為了解決這個問題,請從內部循環的最後一次迭代中移除尾隨逗號:
<code>for (int i = 0; i < dt.Columns.Count; i++) { sb.Append(row[i].ToString()); // 移除最后一次迭代的尾随逗号 if (i == dt.Columns.Count - 1) sb.Remove(sb.Length - 1, 1); else sb.Append(","); }</code>
透過這種方式修改程式碼,將從每行最後一個值中移除尾隨逗號,從而允許Excel將資料正確地分隔到各個儲存格中。
以上是為什麼我的 DataTable 到 CSV 轉換會將所有資料放在一個儲存格中,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!