winfrom导出CSV
用于将DataGridView中的数据导出为CSV文件的方法。CSV文件是一种常用的数据交换格式,可以在不同的应用程序之间方便地共享数据。
- DataGridView:一个用于显示和编辑表格数据的控件。
- CSV文件:逗号分隔值文件,是一种纯文本文件,用于存储表格数据。
数据导出
/// <summary>
/// 数据导出
/// </summary>
/// <param name="dataGridView"></param>
/// <returns></returns>
private bool dataGridViewToCSV(DataGridView dataGridView)
{
if(dataGridView.Rows.Count == 0)
{
MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.FileName = null;
saveFileDialog.Title = "保存";
DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
Stream stream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.GetEncoding(-0));
string strLine = "";
try
{
//表头
for(int i = 0; i < dataGridView.ColumnCount; i++)
{
if(i > 0) strLine += ",";
strLine += dataGridView.Columns[i].HeaderText;
}
strLine.Remove(strLine.Length - 1);
sw.WriteLine(strLine);
strLine = "";
//表的内容
for(int j = 0; j < dataGridView.Rows.Count; j++)
{
strLine = "";
int colCount = dataGridView.Columns.Count;
for(int k = 0; k < colCount; k++)
{
if(k > 0 && k < colCount) strLine += ",";
if(dataGridView.Rows[j].Cells[k].Value == null) strLine += "";
else
{
string cell = dataGridView.Rows[j].Cells[k].Value.ToString().Trim();
//防止里面含有特殊符号
cell = cell.Replace("\"", "\"\"");
cell = "\"" + cell + "\"";
strLine += cell;
}
}
sw.WriteLine(strLine);
}
sw.Close();
stream.Close();
MessageBox.Show("数据被导出到:" + saveFileDialog.FileName.ToString(), "导出完毕", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "导出错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
return true;
}
以上代码实现了将DataGridView中的数据导出为CSV文件的功能。通过调用dataGridViewToCSV方法,可以将DataGridView中的数据保存为CSV文件,方便进行数据交换和共享。如果DataGridView中没有数据,将会弹出提示框提示用户没有数据可导出。导出过程中,会根据当前时间生成一个默认的文件名,并将数据写入CSV文件中。如果导出过程中出现错误,将会弹出错误提示框。导出成功后,会弹出提示框显示导出的文件路径。