動作環境
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community (以下VS) > Windows Forms Application
Sublime Text 2
C++ Builder XE4ではTStringGridにてSaveToFile()をしてcsvファイル出力ができた。
VSではどうするか。
参考: http://stackoverflow.com/questions/9943787/exporting-datagridview-to-csv-file
実装してみた。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace _170421_helloWorld
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string outfile = "test170421a.csv";
dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
dataGridView1.SelectAll();
DataObject dataObject = dataGridView1.GetClipboardContent();
File.WriteAllText(outfile, dataObject.GetText(TextDataFormat.CommaSeparatedValue));
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void Form1_Shown(object sender, EventArgs e)
{
string alist = "data1,data2,data3";
string[] elem = alist.Split(',');
for(int idx=0; idx<3; idx++)
{
dataGridView1.Rows.Add(elem);
}
}
}
}
ボタンを押して以下のファイルがbin\Debug
以下に作成された。
test170421a.csv
,Column1,Column2,Column3
,data1,data2,data3
,data1,data2,data3
,data1,data2,data3
,,,
クリップボードを書き換えてしまうのは要検討。