回答編集履歴

2

文章を修正

2021/05/19 05:33

投稿

退会済みユーザー
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- 自力でダブルクォート処理するが面倒な場合は、Nugetで既存のCSVライブラリをダウンロードして活用した方がよいでしょう。下記は [CSVHelper](https://www.nuget.org/packages/CsvHelper/) を使用した例です。
23
+ 自力でダブルクォート処理するが面倒な場合は、Nugetで既存のCSVライブラリをダウンロードして活用した方がよいでしょう。下記は [CSVHelper](https://www.nuget.org/packages/CsvHelper/) を使用した例です。
24
24
 
25
25
 
26
26
 

1

サンプル追加

2021/05/19 05:33

投稿

退会済みユーザー
test CHANGED
@@ -17,3 +17,109 @@
17
17
  さしすせそ",たちつてと
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ 自力でダブルクォート処理するが面倒な場合は、Nugetで既存のCSVライブラリをダウンロードして活用した方がよいでしょう。下記は [CSVHelper](https://www.nuget.org/packages/CsvHelper/) を使用した例です。
24
+
25
+
26
+
27
+ ```C#
28
+
29
+ using CsvHelper;
30
+
31
+ using System.Collections.Generic;
32
+
33
+ using System.Dynamic;
34
+
35
+ using System.Globalization;
36
+
37
+ using System.IO;
38
+
39
+ using System.Text;
40
+
41
+
42
+
43
+ namespace Test
44
+
45
+ {
46
+
47
+ class Program
48
+
49
+ {
50
+
51
+ static void Main(string[] args)
52
+
53
+ {
54
+
55
+ //手抜きしてdynamic型を使う
56
+
57
+ //データ形式が判っているなら、専用クラスを定義した方がよい
58
+
59
+ var records = new List<dynamic>();
60
+
61
+ for (var i = 1; i <= 3; i++)
62
+
63
+ {
64
+
65
+ dynamic obj = new ExpandoObject();
66
+
67
+ obj.Id = i;
68
+
69
+ obj.Col1 = "あいうえお";
70
+
71
+ obj.Col2 = "かきくけこ\r\nさしすせそ";
72
+
73
+ obj.Col3 = "たちつてと";
74
+
75
+ records.Add(obj);
76
+
77
+ }
78
+
79
+
80
+
81
+ // .NET Core の場合、Shift_JIS を扱う場合はEncoding.RegisterProviderが必要
82
+
83
+ // (.NET Frameworkは不要)
84
+
85
+ Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
86
+
87
+
88
+
89
+ // CSVファイルにShift_JISで出力
90
+
91
+ using (var writer = new StreamWriter(@"c:\test\test.csv", false, Encoding.GetEncoding("Shift_JIS")))
92
+
93
+ using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
94
+
95
+ {
96
+
97
+ csv.WriteRecords(records);
98
+
99
+ }
100
+
101
+ }
102
+
103
+ }
104
+
105
+ }
106
+
107
+
108
+
109
+ (出力結果)
110
+
111
+ Id,Col1,Col2,Col3
112
+
113
+ 1,あいうえお,"かきくけこ
114
+
115
+ さしすせそ",たちつてと
116
+
117
+ 2,あいうえお,"かきくけこ
118
+
119
+ さしすせそ",たちつてと
120
+
121
+ 3,あいうえお,"かきくけこ
122
+
123
+ さしすせそ",たちつてと
124
+
125
+ ```