고객 정보를 CSV로 내보내 클라이언트가 Excel에서이 정보로 작업하고 앱으로 다시 가져올 수 있도록합니다.C#으로 CSV 파일로 데이터를 내보내려면 어떻게해야합니까?
CSV 파일 자체를 편집하면 완벽하게 작동하지만 Excel이 열리고 파일을 저장하면 모든 CSV 구조가 손실됩니다.
따옴표가 제거되고 세미콜론도 제거됩니다.
우리의 수출 코드는 이제 다음과 같습니다
는Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", string.Format("attachment;filename=export_dealers_{0}_{1:yyyy-MM-dd-HH-mm}.csv; charset=utf-8", countryCode, DateTime.Now));
Response.ContentType = "text/csv";
Response.AddHeader("Pragma", "public");
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.BinaryWrite(Encoding.UTF8.GetPreamble());
Response.Write(ToCsv(list));
Response.Flush();
Response.End();
toCSV
기능은 세미콜론으로 구분 된 모든 필드에 따옴표 내에서 각각의 문자열을 반환합니다.
우리는했다 그것을 다른 전에하지만 ç
또는 ñ
같은 특수 문자를 V 곡하지 않도록
위의 코드 조각은 CSV 파일을 수출 ..., 별도의 인코딩 데이터를 추가했다 그 정확한 것 같지만 Excel이 열어 필드를 변경하지 않고 저장하면 모든 세미콜론과 따옴표가 제거되고 Save as
기능을 시도하면 CSV 대신 .txt
파일로 저장됩니다.
나는 이것을 시험해 보겠다.하지만 단순한 것으로 보인다. :) ñ 나 ç와 같은 특수 문자는 어떨까? 프랑스어와 스페인어 및 기타 언어가 이러한 불규칙한 문자로 가득 차 있기 때문에 :) 그 때문에 우리는 모든 인코딩 작업을해야했습니다. – Sander
결국 텍스트 파일처럼 저장하고 쉼표로 구분합니다. 텍스트 파일이 문자를 지원하면 csv도 지원되므로 Excel에서도 효과적입니다. – SimpleVar
주요 차이점은 파일에 저장하지 않고 사용자에게 직접 데이터 스트림으로 출력한다는 것입니다. 우리는 헤더를 설정하고 utf8로 인코딩해야합니다. 파일로 저장할 수 있습니다. 물론 시도해 볼 수 있습니다 ... 오늘 오후 늦게 무엇을하는지 보겠습니다. – Sander