DataGridView控件导出到Excel文件

什么也不说了,见代码

/// <summary>
/// 常用方法,列之间加\t,一行一行输出,此文件其实是csv文件,不过默认可以当成Excel打开。
/// </summary>
/// <remarks>
/// using System.IO;
/// </remarks>
/// <param name="dgv"></param>
private void DataGridViewToExcel(DataGridView dgv)
{
SaveFileDialog dlg
= new SaveFileDialog();
dlg.Filter
= "Execl files (*.xls)|*.xls";
dlg.FilterIndex
= 0;
dlg.RestoreDirectory
= true;
dlg.CreatePrompt
= true;
dlg.Title
= "保存为Excel文件";
if (dlg.ShowDialog() == DialogResult.OK)
{
Stream myStream;
myStream
= dlg.OpenFile();
StreamWriter sw
= new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
string columnTitle = "";
try
{
//写入列标题
for (int i = 0; i < dgv.ColumnCount; i++)
{
if (i > 0)
{
columnTitle
+= "\t";
}
columnTitle
+= dgv.Columns[i].HeaderText;
}
sw.WriteLine(columnTitle);
//写入列内容
for (int j = 0; j < dgv.Rows.Count; j++)
{
string columnValue = "";
for (int k = 0; k < dgv.Columns.Count; k++)
{
if (k > 0)
{
columnValue
+= "\t";
}
if (dgv.Rows[j].Cells[k].Value == null)
columnValue
+= "";
else
columnValue
+= dgv.Rows[j].Cells[k].Value.ToString().Trim();
}
sw.WriteLine(columnValue);
}
sw.Close();
myStream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
}
posted on 2011-02-12 10:52  leiOOlei  阅读(288)  评论(0编辑  收藏  举报