try ... { string filename;SaveFileDialog sfd = new SaveFileDialog();sfd.Title = "请选择将导出的EXCEL文件存放路径";sfd.Filter="excel文档(*.xls)|*.xls";//sfd.OpenFile(); sfd.ShowDialog();if (sfd.FileName != "")...{if(sfd.FileName.LastIndexOf(".xls")<=0)...{sfd.FileName=sfd.FileName+".xls";}filename=sfd.FileName;if(System.IO.File.Exists(filename))...{System.IO.File.Delete(filename); }Excel.ApplicationClass xlApp = new Excel.ApplicationClass();if (xlApp == null)...{MessageBox.Show("无法创建Excel对象,可能您的机器未安装Excel");return;}Excel.Workbooks workbooks = xlApp.Workbooks;Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];DataTable dt1 = (DataTable)dataGrid2.DataSource;float percent=0;long rowRead=0;if(dt1==null) ...{MessageBox.Show("1");return;}long totalCount=dt1.Rows.Count; this.progressBar1.Visible=true;for (int i = 0; i < dt1.Rows.Count; i++)...{this.progressBar1.Value=i;for (int j = 0; j < dt1.Columns.Count; j++)...{if (i == 0)...{worksheet.Cells[1, j + 1] = dt1.Columns[j].ColumnName;}worksheet.Cells[i + 2, j + 1] = dt1.Rows[i][j].ToString();}rowRead++;percent=((float)(100*rowRead))/totalCount; this.progressBar1.Text= "正在导出数据["+ percent.ToString("0.00") +"%]...";} this.progressBar1.Visible=false;workbook.Saved = true;workbook.SaveCopyAs(filename);System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);worksheet = null;System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);workbook = null;workbooks.Close();System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);workbooks = null;xlApp.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);xlApp = null;MessageBox.Show("导出Excel完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);//button2_Click(null,null);}} catch (Exception ex) ... {MessageBox.Show("导出Excel失败!"+ex.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Information);}