・左画像が出力したいもの、右画像がCSVの出力物。

 

※動作の前提としてDataGidViewの「追加を有効にする」をOFFにしてること。
 ONの場合は行数の処理で調整してあげる必要があった気がします、、

 

 

■3~11行目は、この下画面を出すための記述です。
 ・「Title」がウィンドウの名前
 ・「InitialDirectory」はデフォルトのファイル出力先
 ・「FileName」はデフォルトのファイル名
 ・「Filter」はファイルの種類のところ

■13行目
 ・「StreamWriter」とかいうのはファイルにテキストを書き込むものです。
  「@”C:\Users~~」は書き込むファイルへのパス
  「Encoding.GetEncoding(“shift_Jis”)」で文字コード指定する。

■15~16行目
 ・DataGridViewのRowCount(行数)、ColumnsCount(列数)を取得する。

■20~22行目
 ・「DataGridViewのk列目のヘッダーセルの値をListに追加する」←この処理を
  列数ぶん繰り返します。

■30~44行目
 ・34~37行目では、j列目 i行目の値をListに入れる処理を行います。

  例えば1回目にこの処理が流れる場合、i = 0 , j = 0なので
  DataGidView上の「1」がリストへ
  34行目のfor分によってjの値は1づつ増えていくため、 i = 0 , j = 1 となり
  「くだもの」が入るわけですね。

   あとは繰り返しなので 「1 ー くだもの ー りんご ー 100」がListに入ります。

  なので、上記の処理を今度は行数ぶん繰り返す(30行目)ことで、
  ヘッダを含むDataGidViewの内容をファイルに出力することが出来ます。

 

※補足( 「追加を有効にする」がONのとき )