> 백엔드 개발 > 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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿