![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
private
void
ExportExcel(
string
fileName, DataGridView myDGV)
{
string saveFileName = "" ;
// bool fileSaved = false;
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = " xls " ;
saveDialog.Filter = " Excel文件|*.xls " ;
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf( " : " ) < 0 ) return ; // 被点了取消
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null )
{
MessageBox.Show( " 无法创建Excel对象,可能您的机子未安装Excel " );
return ;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[ 1 ]; // 取得 sheet1
// 写入标题
for ( int i = 0 ; i < myDGV.ColumnCount; i ++ )
{
worksheet.Cells[ 1 , i + 1 ] = myDGV.Columns[i].HeaderText;
worksheet.get_Range(worksheet.Cells[ 1 , 1 ], worksheet.Cells[ 1 , i + 1 ]).Font.Bold = true ;
}
// 写入数值
for ( int r = 0 ; r < myDGV.Rows.Count; r ++ )
{
for ( int i = 0 ; i < myDGV.ColumnCount; i ++ )
{
worksheet.Cells[r + 2 , i + 1 ] = myDGV.Rows[r].Cells[i].Value;
}
System.Windows.Forms.Application.DoEvents();
}
if (saveFileName != "" )
{
try
{
workbook.Saved = true ;
workbook.SaveCopyAs(saveFileName);
}
catch (Exception ex)
{
MessageBox.Show( " 导出文件时出错,文件可能正被打开!\n " + ex.Message);
}
}
xlApp.Quit();
GC.Collect(); // 强行销毁
// if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); // 打开EXCEL
MessageBox.Show(fileName + " 保存成功 " , " 提示 " , MessageBoxButtons.OK);
}
{
string saveFileName = "" ;
// bool fileSaved = false;
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = " xls " ;
saveDialog.Filter = " Excel文件|*.xls " ;
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf( " : " ) < 0 ) return ; // 被点了取消
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null )
{
MessageBox.Show( " 无法创建Excel对象,可能您的机子未安装Excel " );
return ;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[ 1 ]; // 取得 sheet1
// 写入标题
for ( int i = 0 ; i < myDGV.ColumnCount; i ++ )
{
worksheet.Cells[ 1 , i + 1 ] = myDGV.Columns[i].HeaderText;
worksheet.get_Range(worksheet.Cells[ 1 , 1 ], worksheet.Cells[ 1 , i + 1 ]).Font.Bold = true ;
}
// 写入数值
for ( int r = 0 ; r < myDGV.Rows.Count; r ++ )
{
for ( int i = 0 ; i < myDGV.ColumnCount; i ++ )
{
worksheet.Cells[r + 2 , i + 1 ] = myDGV.Rows[r].Cells[i].Value;
}
System.Windows.Forms.Application.DoEvents();
}
if (saveFileName != "" )
{
try
{
workbook.Saved = true ;
workbook.SaveCopyAs(saveFileName);
}
catch (Exception ex)
{
MessageBox.Show( " 导出文件时出错,文件可能正被打开!\n " + ex.Message);
}
}
xlApp.Quit();
GC.Collect(); // 强行销毁
// if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); // 打开EXCEL
MessageBox.Show(fileName + " 保存成功 " , " 提示 " , MessageBoxButtons.OK);
}