首頁 > 後端開發 > C++ > 為什麼我的 DataTable 到 CSV 轉換會將所有資料放在一個儲存格中,如何修復它?

為什麼我的 DataTable 到 CSV 轉換會將所有資料放在一個儲存格中,如何修復它?

Barbara Streisand
發布: 2025-01-15 15:36:43
原創
890 人瀏覽過

Why is my DataTable-to-CSV conversion placing all data in a single cell, and how can I fix it?

解決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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板