質問編集履歴

3

説明を追記

2020/02/16 02:53

投稿

kkg_No_05
kkg_No_05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  1ファイル目から1列目と2列目、2ファイル目以降は2列目のみを表示し、一覧表示したいです。
10
10
 
11
+ (この質問ではファイル・コード共に簡略化しており、実際に扱いたいファイルは1列目が10数文字以上、数十行となります)
12
+
11
13
 
12
14
 
13
15
  |Param_001.csv|Param_002.csv|Param_003.csv|Param_004.csv|Param_005.csv|

2

説明修正

2020/02/16 02:53

投稿

kkg_No_05
kkg_No_05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  csvファイルをDataGridに下記の様に表示したいです。
6
6
 
7
+ 各csvファイルは1列目(AAAなど)が共通、2列目(1, 2など)が異なります。
8
+
7
- 1ファイル目から1列目と2列目、2ファイル目以降は2列目のみを組み合わせたいです。
9
+ 1ファイル目から1列目と2列目、2ファイル目以降は2列目のみを表示し、一覧表示したいです。
8
10
 
9
11
 
10
12
 

1

説明を追記

2020/02/16 02:39

投稿

kkg_No_05
kkg_No_05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,17 @@
8
8
 
9
9
 
10
10
 
11
- |Param_001.csv|Param_002.csv|Param_003.csv|
11
+ |Param_001.csv|Param_002.csv|Param_003.csv|Param_004.csv|Param_005.csv|
12
-
12
+
13
- |:--|:--:|--:|
13
+ |:--:|:--:|:--:|:--:|:--:|
14
-
14
+
15
- |AAA,1|AAA,2|AAA,3|
15
+ |AAA,1|AAA,2|AAA,3|AAA,4|AAA,5|
16
-
16
+
17
- |BBB,11|BBB,22|BBB,33|
17
+ |BBB,11|BBB,22|BBB,33|BBB,44|BBB,55|
18
-
18
+
19
- |CCC,1.1|CCC,2.2|CCC,3.3|
19
+ |CCC,1.1|CCC,2.2|CCC,3.3|CCC,4.4|CCC,5.5|
20
-
20
+
21
- |DDD,11.1|DDD,22.2|DDD,33.3|
21
+ |DDD,11.1|DDD,22.2|DDD,33.3|DDD,44.4|DDD,55.5|
22
22
 
23
23
 
24
24
 
@@ -26,270 +26,270 @@
26
26
 
27
27
 
28
28
 
29
- ||001|002|003|
29
+ ||001|002|003|004|005|
30
+
31
+ |:--:|:--:|:--:|:--:|:--:|
32
+
33
+ |AAA|1|2|3|4|5|
34
+
35
+ |BBB|11|22|33|44|55|
36
+
37
+ |CCC|1.1|2.2|3.3|4.4|5.5|
38
+
39
+ |DDD|11.1|22.2|33.3|44.4|55.5|
40
+
41
+
42
+
43
+ ### 発生している問題・エラーメッセージ
44
+
45
+
46
+
47
+ 下記のコードでは、次のように同じ列になってしまいます。
48
+
49
+ Listの要素に次のファイルの読み込み内容を付け足していきたいのですが、上手くいきません。
50
+
51
+
52
+
53
+ |||||
30
54
 
31
55
  |:--|:--:|:--:|
32
56
 
33
- |AAA|1|2|3|
34
-
35
- |BBB|11|22|33|
36
-
37
- |CCC|1.1|2.2|3.3|
38
-
39
- |DDD|11.1|22.2|33.3|
40
-
41
-
42
-
43
- ### 発生している問題・エラーメッセージ
44
-
45
-
46
-
47
- 下記のコードでは、次のようになってしまいます。
48
-
49
- Listの要素に次のファイルの読み込み内容を付け足していきたいのですが、上手くいきません。
57
+ |AAA|1|||
58
+
59
+ |BBB|11|||
60
+
61
+ |CCC|1.1|||
62
+
63
+ |DDD|11.1|||
64
+
65
+ |AAA|2|||
66
+
67
+ |BBB|22|||
68
+
69
+ |CCC|2.2|||
70
+
71
+ |DDD|22.2|||
72
+
73
+ |///|///|||
74
+
75
+
76
+
77
+ ### 該当のソースコード
78
+
79
+
80
+
81
+ ```xaml
82
+
83
+ <Window x:Class="WpfApp3.MainWindow"
84
+
85
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
86
+
87
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
88
+
89
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
90
+
91
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
92
+
93
+ xmlns:local="clr-namespace:WpfApp3"
94
+
95
+ mc:Ignorable="d"
96
+
97
+ Title="MainWindow" Height="450" Width="800">
98
+
99
+ <Grid>
100
+
101
+
102
+
103
+ <DataGrid x:Name="DataGrid_CSV"
104
+
105
+ AutoGenerateColumns="False" >
106
+
107
+ <DataGrid.Columns>
108
+
109
+ <DataGridTextColumn Header="Param"
110
+
111
+ Binding="{Binding [0]}" />
112
+
113
+ <DataGridTextColumn Header="Val_001"
114
+
115
+ Binding="{Binding [1]}" />
116
+
117
+ <DataGridTextColumn Header="Val_002"
118
+
119
+ Binding="{Binding [2]}" />
120
+
121
+ <DataGridTextColumn Header="Val_003"
122
+
123
+ Binding="{Binding [3]}" />
124
+
125
+ <DataGridTextColumn Header="Val_004"
126
+
127
+ Binding="{Binding [4]}" />
128
+
129
+ <DataGridTextColumn Header="Val_005"
130
+
131
+ Binding="{Binding [5]}" />
132
+
133
+ </DataGrid.Columns>
134
+
135
+ </DataGrid>
136
+
137
+ </Grid>
138
+
139
+ </Window>
140
+
141
+
142
+
143
+ ```
144
+
145
+
146
+
147
+ ```c#
148
+
149
+ using System;
150
+
151
+ using System.Collections.Generic;
152
+
153
+ using System.IO;
154
+
155
+ using System.Text;
156
+
157
+ using System.Windows;
158
+
159
+
160
+
161
+ namespace WpfApp3
162
+
163
+ {
164
+
165
+ /// <summary>
166
+
167
+ /// MainWindow.xaml の相互作用ロジック
168
+
169
+ /// </summary>
170
+
171
+ public partial class MainWindow : Window
172
+
173
+ {
174
+
175
+ public MainWindow()
176
+
177
+ {
178
+
179
+ InitializeComponent();
180
+
181
+
182
+
183
+ // ファイル情報を格納するリスト
184
+
185
+ List<string[]> list_file= new List<string[]>();
186
+
187
+
188
+
189
+ // ファイル1~5の内容を取得する
190
+
191
+ for (int i = 1; i <= 5; i++)
192
+
193
+ {
194
+
195
+ string path_read = @"Param_" + i.ToString("000") + ".csv";
196
+
197
+ FileRead2(path_read, list_file);
198
+
199
+ }
200
+
201
+
202
+
203
+ // DataGridにリストの内容を表示する
204
+
205
+ DataGrid_CSV.ItemsSource = list_file;
206
+
207
+ }
208
+
209
+
210
+
211
+
212
+
213
+ // ファイル読み込みメソッド
214
+
215
+ public void FileRead2(string path_read, List<string[]> list_file)
216
+
217
+ {
218
+
219
+ try
220
+
221
+ {
222
+
223
+ // エンコードを指定して、csvファイルを開く
224
+
225
+ using (var sr = new StreamReader(path_read, Encoding.GetEncoding("shift_jis")))
226
+
227
+ {
228
+
229
+
230
+
231
+ // ストリームの末尾まで繰り返す
232
+
233
+ while (!sr.EndOfStream)
234
+
235
+ {
236
+
237
+ // CSVファイルの一行を読み込む
238
+
239
+ string line = sr.ReadLine();
240
+
241
+ // 読み込んだ一行をカンマ毎に分けて配列に格納する
242
+
243
+ string[] csv_array = line.Split(',');
244
+
245
+
246
+
247
+ // 配列からリストに格納する
248
+
249
+ list_file.Add(csv_array);
250
+
251
+ }
252
+
253
+ }
254
+
255
+ }
256
+
257
+ catch (Exception e)
258
+
259
+ {
260
+
261
+ // ファイルを開くのに失敗したとき
262
+
263
+ //MessageBox.Show(e.Message);
264
+
265
+ }
266
+
267
+ }
268
+
269
+
270
+
271
+ }
272
+
273
+ }
274
+
275
+ ```
276
+
277
+
278
+
279
+ ### 試したこと
280
+
281
+ ・2列目のみを取得 してみる
282
+
283
+ List<string[]> list_file= new List<string[]>(); と list_file.Add(csv_array); を
284
+
285
+ List<string> list_file= new List<string>(); と list_file.Add(csv_array[1]); に変更して、
286
+
287
+ 2列目を取得しようとしたが、DataGridに表示すると行と列が逆になった。
50
288
 
51
289
 
52
290
 
53
291
  |||||
54
292
 
55
- |:--|:--:|:--:|
56
-
57
- |AAA|1|||
58
-
59
- |BBB|11|||
60
-
61
- |CCC|1.1|||
62
-
63
- |DDD|11.1|||
64
-
65
- |AAA|2|||
66
-
67
- |BBB|22|||
68
-
69
- |CCC|2.2|||
70
-
71
- |DDD|22.2|||
72
-
73
-
74
-
75
-
76
-
77
- ### 該当のソースコード
78
-
79
-
80
-
81
- ```xaml
82
-
83
- <Window x:Class="WpfApp3.MainWindow"
84
-
85
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
86
-
87
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
88
-
89
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
90
-
91
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
92
-
93
- xmlns:local="clr-namespace:WpfApp3"
94
-
95
- mc:Ignorable="d"
96
-
97
- Title="MainWindow" Height="450" Width="800">
98
-
99
- <Grid>
100
-
101
-
102
-
103
- <DataGrid x:Name="DataGrid_CSV"
104
-
105
- AutoGenerateColumns="False" >
106
-
107
- <DataGrid.Columns>
108
-
109
- <DataGridTextColumn Header="Param"
110
-
111
- Binding="{Binding [0]}" />
112
-
113
- <DataGridTextColumn Header="Val_001"
114
-
115
- Binding="{Binding [1]}" />
116
-
117
- <DataGridTextColumn Header="Val_002"
118
-
119
- Binding="{Binding [2]}" />
120
-
121
- <DataGridTextColumn Header="Val_003"
122
-
123
- Binding="{Binding [3]}" />
124
-
125
- <DataGridTextColumn Header="Val_004"
126
-
127
- Binding="{Binding [4]}" />
128
-
129
- <DataGridTextColumn Header="Val_005"
130
-
131
- Binding="{Binding [5]}" />
132
-
133
- </DataGrid.Columns>
134
-
135
- </DataGrid>
136
-
137
- </Grid>
138
-
139
- </Window>
140
-
141
-
142
-
143
- ```
144
-
145
-
146
-
147
- ```c#
148
-
149
- using System;
150
-
151
- using System.Collections.Generic;
152
-
153
- using System.IO;
154
-
155
- using System.Text;
156
-
157
- using System.Windows;
158
-
159
-
160
-
161
- namespace WpfApp3
162
-
163
- {
164
-
165
- /// <summary>
166
-
167
- /// MainWindow.xaml の相互作用ロジック
168
-
169
- /// </summary>
170
-
171
- public partial class MainWindow : Window
172
-
173
- {
174
-
175
- public MainWindow()
176
-
177
- {
178
-
179
- InitializeComponent();
180
-
181
-
182
-
183
- // ファイル情報を格納するリスト
184
-
185
- List<string[]> list_file= new List<string[]>();
186
-
187
-
188
-
189
- // ファイル1~5の内容を取得する
190
-
191
- for (int i = 1; i <= 5; i++)
192
-
193
- {
194
-
195
- string path_read = @"Param_" + i.ToString("000") + ".csv";
196
-
197
- FileRead2(path_read, list_file);
198
-
199
- }
200
-
201
-
202
-
203
- // DataGridにリストの内容を表示する
204
-
205
- DataGrid_CSV.ItemsSource = list_file;
206
-
207
- }
208
-
209
-
210
-
211
-
212
-
213
- // ファイル読み込みメソッド
214
-
215
- public void FileRead2(string path_read, List<string[]> list_file)
216
-
217
- {
218
-
219
- try
220
-
221
- {
222
-
223
- // エンコードを指定して、csvファイルを開く
224
-
225
- using (var sr = new StreamReader(path_read, Encoding.GetEncoding("shift_jis")))
226
-
227
- {
228
-
229
-
230
-
231
- // ストリームの末尾まで繰り返す
232
-
233
- while (!sr.EndOfStream)
234
-
235
- {
236
-
237
- // CSVファイルの一行を読み込む
238
-
239
- string line = sr.ReadLine();
240
-
241
- // 読み込んだ一行をカンマ毎に分けて配列に格納する
242
-
243
- string[] csv_array = line.Split(',');
244
-
245
-
246
-
247
- // 配列からリストに格納する
248
-
249
- list_file.Add(csv_array);
250
-
251
- }
252
-
253
- }
254
-
255
- }
256
-
257
- catch (Exception e)
258
-
259
- {
260
-
261
- // ファイルを開くのに失敗したとき
262
-
263
- //MessageBox.Show(e.Message);
264
-
265
- }
266
-
267
- }
268
-
269
-
270
-
271
- }
272
-
273
- }
274
-
275
- ```
276
-
277
-
278
-
279
- ### 試したこと
280
-
281
- ・2列目のみを取得 してみる
282
-
283
- List<string[]> list_file= new List<string[]>(); と list_file.Add(csv_array); を
284
-
285
- List<string> list_file= new List<string>(); と list_file.Add(csv_array[1]); に変更して、
286
-
287
- 2列目を取得しようとしたが、DataGridに表示すると行と列が逆になった。
288
-
289
-
290
-
291
- |||||
292
-
293
293
  |:--|:--:|--:|--:|
294
294
 
295
295
  |AAA|BBB|CCC|DDD|