/// <summary>
/// 将DataGridView中的数据导出到Excel
/// </summary>
/// <param name="dgvMain"></param>
private void DataGridViewToExcel(DataGridView dgvMain) {
//声明保存对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
//文件后缀列表
saveFileDialog.Filter = "文本文件(*.txt)|*.txt";
//设置过滤器索引
saveFileDialog.FilterIndex = 0;
//关闭对话框之后,下次打开恢复原来的目录
saveFileDialog.RestoreDirectory = true;
//设置如果文件不存在、是否提示用户创建该文件
saveFileDialog.CreatePrompt = true;
//设置对话框标题
saveFileDialog.Title = "保存为Excel文件";
//接受客户端响应、当用户单击保存后执行
if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
//创建文件流
Stream stream = saveFileDialog.OpenFile();
//创建写入器
StreamWriter streamWrite = new StreamWriter(stream,System.Text.Encoding.GetEncoding(-0));
string columnTitle = ""; //列标题
try
{
//写入列标题
for (int i = 0; i < dgvMain.ColumnCount; i++)
{
if (i > 1)
{
columnTitle += "\t\t";
}
columnTitle += dgvMain.Columns[i].HeaderText;
}
//将标题写入文件流
streamWrite.WriteLine(columnTitle);
//写入列内容
for (int i = 0; i < dgvMain.Rows.Count; i++)
{
string columnValue = "";
for (int j = 0; j < dgvMain.Columns.Count; j++)
{
if (j > 1)
{
columnValue += "\t\t";
}
if (dgvMain.Rows[i].Cells[j].Value == null)
columnValue += "";
else
columnValue += dgvMain.Rows[i].Cells[j].Value.ToString().Trim();
}
//将行数据写入文件流
streamWrite.WriteLine(columnValue);
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
finally {
//关闭文件流
streamWrite.Close();
stream.Close();
}
}
}