質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

2613閲覧

出力時のパスが固定となっている

xlostdjx

総合スコア39

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/06/27 02:58

編集2018/06/27 05:14

出力時のパスが固定となっていて
そこをファイル名に入力したテキストを読み込み
ファイルに保存する仕組みを作りたいのですがわからずご教授願いたいです。

今は

C#

1 2 /// <summary> 3 /// CSV出力ボタン押下時 4 /// </summary> 5 private void CSV_Output_Click(object sender, EventArgs e) 6 { 7 // SaveFileDialogを作成する 8 SaveFileDialog result = new SaveFileDialog(); 9 result.Title = "ファイルを保存する"; 10 // 初期表示時のディレクトリを指定 11 result.InitialDirectory = @"C:\Users\Admin\Downloads"; 12 // ファイル名を指定し取得する 13 result.FileName = @"ForOutput.csv"; 14 // 選択できるファイルの種類を指定する 15 result.Filter = "CSV (カンマ区切り)|*.csv"; 16 // ファイル出力(保存)ダイアログ表示  17 DialogResult FileOutput = result.ShowDialog(); 18 19 20 21 // //「保存」ボタンが押された時の処理 22 if (FileOutput == DialogResult.OK) 23 { 24 //指定されたファイルのパスを取得する 25 string fileName = result.FileName; 26 } 27 else if (FileOutput == DialogResult.Cancel) 28 { 29 //「キャンセル」ボタンまたは「×」ボタンが選択された時の処理 30 return; 31 } 32 33 // パスが固定されている // 保存用のファイルを開く ( ファイルパス )( ファイル名 ) (文字コード指定) 34 using (StreamWriter writer = new StreamWriter(@"C:\Users\Admin\Downloads\ForOutput.csv", false, Encoding.GetEncoding("shift_jis"))) 35 { 36 //DataGridViewの列を取得 37 int rowCount = DataGrid.Rows.Count; 38 if (DataGrid.AllowUserToAddRows == true) 39 { 40 // 最後の新規入力用の1行分を差し引く 41 rowCount = rowCount - 1; 42 } 43 44 // リストの初期化 45 List<String> strList; 46 strList = new List<String>(); 47 48 // ヘッダ部の出力 49 // Columns.Count カルム数ループ 50 for (int j = 0; j < DataGrid.Columns.Count; j++) 51 { 52 // カラムのヘッダのテキストをリストに追加 53 strList.Add(DataGrid.Columns[j].HeaderCell.Value.ToString()); 54 } 55 // 配列へ変換 56 String[] strArray = strList.ToArray(); 57 // CSV 形式に変換 // カンマ区切り 58 String strCsvData = String.Join(",", strArray); 59 //ヘッダを出力 60 writer.WriteLine(strCsvData); 61 62 // データ部の出力 63 // rowCount 行数文ループ 64 for (int i = 0; i < rowCount; i++) 65 { 66 // リストの初期化 67 strList = new List<String>(); 68 // Columns.Count カルムの数だけループする 69 for (int j = 0; j < DataGrid.Columns.Count; j++) 70 { 71 // 列と行のテキストをリストに追加 72 strList.Add(DataGrid[j, i].Value.ToString()); 73 } 74 // 配列へ変換 75 String[] stgArray = strList.ToArray(); 76 // CSV 形式に変換 // カンマ区切り 77 String stgCsvData = String.Join(",", stgArray); 78 //列と行を出力 79 writer.WriteLine(stgCsvData); 80 } 81 } 82 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

using (StreamWriter writer = new StreamWriter(@"C:\Users\Admin\Downloads\ForOutput.csv", false, Encoding.GetEncoding("shift_jis")))

using (StreamWriter writer = new StreamWriter(fileName, false, Encoding.GetEncoding("shift_jis")))

に、すれば良いだけじゃないでしょうか?

投稿2018/06/27 03:03

Wind

総合スコア442

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xlostdjx

2018/06/27 05:15 編集

result.OpenFile();を消して result.FileName にするといけました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問