質問編集履歴

2

修正後ソースの追記

2017/10/26 01:01

投稿

cha-ra
cha-ra

スコア40

test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,57 @@
31
31
  出来上がったファイルを開いて一括置換するという方法を取れますが、
32
32
 
33
33
  できれば一回の出力で綺麗に作成したいと思っています。。。
34
+
35
+
36
+
37
+ ###追記2
38
+
39
+ コメントへの返信ではMarkDownが利用できなかったので、
40
+
41
+ 修正後のコードをこちらに追記します。
42
+
43
+
44
+
45
+ ```c#
46
+
47
+ // データ出力部
48
+
49
+ using (var sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("shift_jis")))
50
+
51
+ using (var csv = new CsvHelper.CsvWriter(sw)) {
52
+
53
+ csv.Configuration.RegisterClassMap(mapper);
54
+
55
+ csv.Configuration.HasHeaderRecord = false;
56
+
57
+
58
+
59
+ csv.Configuration.QuoteAllFields = false;
60
+
61
+ csv.Configuration.QuoteNoFields = true;
62
+
63
+
64
+
65
+ foreach (var data in dataList) {
66
+
67
+ csv.WriteRecord(data);
68
+
69
+ }
70
+
71
+ }
72
+
73
+
74
+
75
+ // StringConverter実装クラス
76
+
77
+ public class AddQuoteConverter : CsvHelper.TypeConversion.StringConverter {
78
+
79
+ public override string ConvertToString(TypeConverterOptions options, object value) {
80
+
81
+ return @"""" + base.ConvertToString(options, value) + @"""";
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ```

1

利用したくない解決策を追記

2017/10/26 01:01

投稿

cha-ra
cha-ra

スコア40

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,17 @@
17
17
  または、CsvHelper.Configuration.QuoteAllFields に true を設定したうえで、
18
18
 
19
19
  任意の列のみダブルクォートを外す方法がありますか?
20
+
21
+
22
+
23
+ ---
24
+
25
+ ###追記
26
+
27
+ 力技として、出力文字列の前後にダブルクォートを付与することで、
28
+
29
+ 3連続のダブルクォート「"""」を出力し、
30
+
31
+ 出来上がったファイルを開いて一括置換するという方法を取れますが、
32
+
33
+ できれば一回の出力で綺麗に作成したいと思っています。。。