質問するログイン新規登録

質問編集履歴

1

編集

2018/06/21 08:02

投稿

xlostdjx
xlostdjx

スコア39

title CHANGED
File without changes
body CHANGED
@@ -12,8 +12,67 @@
12
12
 
13
13
  ```C#
14
14
 
15
+ /// <summary>
15
- /// 庫種別の値変換
16
+ /// CSV力ボタン押下時
16
17
  /// </summary>
18
+ private void CSV_Output_Click(object sender, EventArgs e)
19
+ {
20
+ // SaveFileDialogを作成する
21
+ SaveFileDialog result = new SaveFileDialog();
22
+ result.Title = "ファイルを保存する";
23
+ // 初期表示時のディレクトリを指定
24
+ result.InitialDirectory = @"C:\Users\Admin\Downloads";
25
+ // ファイル名を指定、取得する
26
+ result.FileName = @"ForOutput.csv";
27
+ // 選択できるファイルの種類を指定する
28
+ result.Filter = "CSV (カンマ区切り)|*.csv";
29
+ // ファイル出力(保存)ダイアログ表示 
30
+ DialogResult FileOutput = result.ShowDialog();
31
+
32
+ // dataGridViewからデータ取得(Loop処理)
33
+ if (FileOutput == DialogResult.OK)
34
+ {
35
+ //「保存」ボタンが押された時の処理
36
+ string fileName = result.FileName; //指定されたファイルのパスを取得する
37
+ }
38
+ else if (FileOutput == DialogResult.Cancel)
39
+ {
40
+ //「キャンセル」ボタンまたは「×」ボタンが選択された時の処理
41
+ }
42
+
43
+ // 保存用のファイルを開く ( ファイルパス )( ファイル名 ) (文字コード指定)
44
+ using (StreamWriter writer = new StreamWriter(@"C:\Users\Admin\Downloads\ForOutput.csv", false, Encoding.GetEncoding("shift_jis")))
45
+ {
46
+ int rowCount = DataGrid.Rows.Count;
47
+ if (DataGrid.AllowUserToAddRows == true)
48
+ {
49
+ // rowCount 最後の新規入力用の1行分を差し引く
50
+ rowCount = rowCount - 1;
51
+ }
52
+
53
+ // 行 rowCount DataGrildViewの行数文ループ
54
+ for (int i = 0; i < rowCount; i++)
55
+ {
56
+ // リストの初期化
57
+ List<String> strList = new List<String>();
58
+ // 列 Columns.Coun カルムと同じ数だけループする
59
+ for (int j = 0; j < DataGrid.Columns.Count; j++)
60
+ {
61
+ strList.Add(DataGrid[j, i].Value.ToString());
62
+ }
63
+
64
+ // 配列へ変換
65
+ String[] strArray = strList.ToArray();
66
+ // CSV 形式に変換(ファイル出力)
67
+ String strCsvData = String.Join(",", strArray);
68
+ writer.WriteLine(strCsvData);
69
+ }
70
+ }
71
+ }
72
+
73
+ /// <summary>
74
+ /// 入出庫種別の値変換
75
+ /// </summary>
17
76
  private void DataGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
18
77
  {
19
78
  DataGridView dgv = (DataGridView)sender;
@@ -26,11 +85,13 @@
26
85
  {
27
86
  return;
28
87
  }
88
+
29
89
  // e.Valueの値が1なら"入庫"に変換
30
90
  if (int.Parse(e.Value.ToString()) == 1)
31
91
  {
32
92
  e.Value = "入庫";
33
93
  }
94
+
34
95
  // e.Valueの値が2なら"出庫"に変換
35
96
  else if (int.Parse(e.Value.ToString()) == 2)
36
97
  {
@@ -38,4 +99,5 @@
38
99
  }
39
100
  }
40
101
  }
102
+
41
103
  ```