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

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

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

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

C#

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

Q&A

解決済

1回答

4136閲覧

EPPLUSを使ってExcelファイル出力したい

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

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

C#

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

0グッド

0クリップ

投稿2020/08/26 15:56

編集2020/08/26 16:06

EPPLUSを使用した事がなくてこのコードを書き換えてエクセルに出力したいのですが、サイトを見ても勝手が分からずどう進めていいかわかりません。

private void button1_Click(object sender, EventArgs e)         {             SaveFileDialog saveFile = new SaveFileDialog();             DialogResult result = saveFile.ShowDialog(); result.filter ="CSV|*csv|EXCEL|*.xlsx";             if(Result==DialogResult.OK)             {                 string filename = saveFile.FileName;             }             using (StreamWriter writer = new StreamWriter(filename,false,Encoding.GetEncoding("Shift_JIS")))             {                 //行と列の変数作成                 int row = dataGridView1.RowCount;                 int colunms = dataGridView1.ColumnCount;                 List<string> strList;                 strList = new List<string>(); using()                 //ヘッダー記述                 for(int c = 0;  c< colunms; c++)                 { strList.Add(dataGridView1.Columns[c].HeaderCell.FormattedValue.ToString());                 }                 //配列変換                 string[] strHeader = strList.ToArray();                 //csv変換                 string strCsvData2 = string.Join(",",strHeader);                 writer.WriteLine(strCsvData2);                 //行データを回す                 for(int i = 0; i < row; i++)                 {   //リスト初期化                     strList = new List<string>();                                         //列データを回す                     for(int j=0;j < colunms; j++)                     {                         //列と行を追加               strList.Add(dataGridView1[ j, i ].Value.ToString());                     }                     //配列に変換                     string[] strArray = strList.ToArray();                     //csv変換                     string strCsvData = string.Join(",",strArray);                     writer.WriteLine(strCsvData);                 }             }         }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/08/26 16:06

申し訳ございません。修正いたしました。
guest

回答1

0

ベストアンサー

こんな感じでしょうか。

C#

1using OfficeOpenXml; 2using System; 3using System.Collections.Generic; 4using System.IO; 5using System.Text; 6using System.Windows.Forms; 7 8namespace WindowsFormsApp321 9{ 10 public partial class Form1 : Form 11 { 12 public Form1() 13 { 14 InitializeComponent(); 15 } 16 17 private void OutputExcel(string path) 18 { 19 ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; 20 21 using (var excel = new ExcelPackage(new FileInfo(path))) 22 { 23 var sheet = excel.Workbook.Worksheets.Add("シート名"); 24 25 sheet.Cells["A1"].Value = "タイトル"; 26 27 var a = new ExcelCellAddress("A3"); 28 29 for (int c = 0; c < dataGridView1.ColumnCount; c++) 30 { 31 sheet.Cells[a.Row, a.Column + c].Value = dataGridView1.Columns[c].HeaderCell.FormattedValue; 32 } 33 34 for (int r = 0; r < dataGridView1.RowCount; r++) 35 { 36 for (int c = 0; c < dataGridView1.ColumnCount; c++) 37 { 38 sheet.Cells[a.Row + 1 + r, a.Column + c].Value = dataGridView1[c, r].Value; 39 } 40 } 41 42 excel.Save(); 43 } 44 } 45 46 private void button1_Click(object sender, EventArgs e) 47 { 48 string filename; 49 int filterIndex; 50 51 using (SaveFileDialog saveFile = new SaveFileDialog()) 52 { 53 saveFile.Filter = "CSV|*csv|EXCEL|*.xlsx"; 54 55 DialogResult result = saveFile.ShowDialog(); 56 if (result != DialogResult.OK) 57 { 58 return; 59 } 60 61 filename = saveFile.FileName; 62 filterIndex = saveFile.FilterIndex; 63 } 64 65 if (filterIndex == 2) 66 { 67 OutputExcel(filename); 68 return; 69 } 70 } 71 } 72}

投稿2020/08/26 18:16

mah

総合スコア591

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問