質問編集履歴

1

編集

2018/06/21 08:02

投稿

xlostdjx
xlostdjx

スコア39

test CHANGED
File without changes
test CHANGED
@@ -26,10 +26,128 @@
26
26
 
27
27
 
28
28
 
29
+ /// <summary>
30
+
29
- /// 庫種別の値変換
31
+ /// CSV力ボタン押下時
30
32
 
31
33
  /// </summary>
32
34
 
35
+ private void CSV_Output_Click(object sender, EventArgs e)
36
+
37
+ {
38
+
39
+ // SaveFileDialogを作成する
40
+
41
+ SaveFileDialog result = new SaveFileDialog();
42
+
43
+ result.Title = "ファイルを保存する";
44
+
45
+ // 初期表示時のディレクトリを指定
46
+
47
+ result.InitialDirectory = @"C:\Users\Admin\Downloads";
48
+
49
+ // ファイル名を指定、取得する
50
+
51
+ result.FileName = @"ForOutput.csv";
52
+
53
+ // 選択できるファイルの種類を指定する
54
+
55
+ result.Filter = "CSV (カンマ区切り)|*.csv";
56
+
57
+ // ファイル出力(保存)ダイアログ表示 
58
+
59
+ DialogResult FileOutput = result.ShowDialog();
60
+
61
+
62
+
63
+ // dataGridViewからデータ取得(Loop処理)
64
+
65
+ if (FileOutput == DialogResult.OK)
66
+
67
+ {
68
+
69
+ //「保存」ボタンが押された時の処理
70
+
71
+ string fileName = result.FileName; //指定されたファイルのパスを取得する
72
+
73
+ }
74
+
75
+ else if (FileOutput == DialogResult.Cancel)
76
+
77
+ {
78
+
79
+ //「キャンセル」ボタンまたは「×」ボタンが選択された時の処理
80
+
81
+ }
82
+
83
+
84
+
85
+ // 保存用のファイルを開く ( ファイルパス )( ファイル名 ) (文字コード指定)
86
+
87
+ using (StreamWriter writer = new StreamWriter(@"C:\Users\Admin\Downloads\ForOutput.csv", false, Encoding.GetEncoding("shift_jis")))
88
+
89
+ {
90
+
91
+ int rowCount = DataGrid.Rows.Count;
92
+
93
+ if (DataGrid.AllowUserToAddRows == true)
94
+
95
+ {
96
+
97
+ // rowCount 最後の新規入力用の1行分を差し引く
98
+
99
+ rowCount = rowCount - 1;
100
+
101
+ }
102
+
103
+
104
+
105
+ // 行 rowCount DataGrildViewの行数文ループ
106
+
107
+ for (int i = 0; i < rowCount; i++)
108
+
109
+ {
110
+
111
+ // リストの初期化
112
+
113
+ List<String> strList = new List<String>();
114
+
115
+ // 列 Columns.Coun カルムと同じ数だけループする
116
+
117
+ for (int j = 0; j < DataGrid.Columns.Count; j++)
118
+
119
+ {
120
+
121
+ strList.Add(DataGrid[j, i].Value.ToString());
122
+
123
+ }
124
+
125
+
126
+
127
+ // 配列へ変換
128
+
129
+ String[] strArray = strList.ToArray();
130
+
131
+ // CSV 形式に変換(ファイル出力)
132
+
133
+ String strCsvData = String.Join(",", strArray);
134
+
135
+ writer.WriteLine(strCsvData);
136
+
137
+ }
138
+
139
+ }
140
+
141
+ }
142
+
143
+
144
+
145
+ /// <summary>
146
+
147
+ /// 入出庫種別の値変換
148
+
149
+ /// </summary>
150
+
33
151
  private void DataGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
34
152
 
35
153
  {
@@ -54,6 +172,8 @@
54
172
 
55
173
  }
56
174
 
175
+
176
+
57
177
  // e.Valueの値が1なら"入庫"に変換
58
178
 
59
179
  if (int.Parse(e.Value.ToString()) == 1)
@@ -64,6 +184,8 @@
64
184
 
65
185
  }
66
186
 
187
+
188
+
67
189
  // e.Valueの値が2なら"出庫"に変換
68
190
 
69
191
  else if (int.Parse(e.Value.ToString()) == 2)
@@ -78,4 +200,6 @@
78
200
 
79
201
  }
80
202
 
203
+
204
+
81
205
  ```