C#将数据保存到Excel中第一步:首先添加两个组件:打开解决方案资资源管理器,右键点击“引用”,选择“添加引用”添加第一个引用:再添加第二个引用:第二步:引用命名空间:usingSystem.Reflection;//这个命名空间是定义缺省值第三步:界面设计(参考):第四步:代码示例(仅供参考):/*代码总有不完善之处,仅供参考如有错误,敬请谅解*/usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;//引用连接数据库的命名空间usingSystem.Data.SqlClient;//引用定义缺省值的命名空间usingSystem.Reflection;usingSystem.Runtime.InteropServices;namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){//在窗体加载的时候当定数据this.dataGridView1.DataSource=sqlconnection();}//连接数据库获取相关数据publicDataTablesqlconnection(){//字段拼接stringstr=server=.;database=数据库名;integratedsecurity=true;SqlConnectionconn=newSqlConnection(str);SqlCommandcom=newSqlCommand();com.Connection=conn;com.CommandText=连接命令;//打开连接conn.Open();SqlDataAdaptersda=newSqlDataAdapter(com);DataTabletable=newDataTable();//填充数据sda.Fill(table);//关闭连接conn.Close();//返回数据returntable;}privatevoidbutton1_Click(objectsender,EventArgse){//判断将要导出的素具是否为空(不包括列标题)if(this.dataGridView1.Rows.Count=1){MessageBox.Show(没有可导出的数据!);return;}//选择保存路径if(this.saveFileDialog1.ShowDialog()!=DialogResult.OK){return;}//创建一个EXCEL应用程序Excel.Applicationexcel=newExcel.Application();//是否显示导出过程(显示创建后的EXCEL)excel.Visible=false;//定义缺省值Missingmiss=Missing.Value;//创建一个新的工作簿Excel.Workbooksworkbooks=excel.Workbooks;Excel.Workbookworkbook=workbooks.Add(miss);Excel.Worksheetsheet=workbook.ActiveSheet;//循环添加列名for(inti=0;ithis.dataGridView1.Rows[0].Cells.Count;i++){excel.Cells[1,i+1]=this.dataGridView1.Columns[i].HeaderText.ToString();}//填充数据for(inti=0;ithis.dataGridView1.Rows.Count;i++)//所要添加的行数{for(intj=0;jthis.dataGridView1.Rows[0].Cells.Count;j++)//每行的列数{//将数据填充到对应的单元格中excel.Cells[i+2,j+1]=Convert.ToString(this.dataGridView1[j,i].Value);}//显示数据导出的进度this.progressBar1.Value+=100/this.dataGridView1.RowCount;}//设置表格样式//设置列标题的背景颜色Excel.Rangeer=sheet.Range[sheet.Cells[1,1],sheet.Cells[1,this.dataGridView1.ColumnCount]];er.Cells.Interior.Color=Color.LightBlue;//重新选择单元格范围introwscount=this.dataGridView1.Rows.Count;intcolumncount=this.dataGridView1.ColumnCount;//将范围重新确定为每一行的第一个单元格er=sheet.Range[sheet.Cells[1,1],sheet.Cells[rowscount,1]];//设置范围内的单元格的背景颜色为淡蓝色er.Cells.Interior.Color=Color.LightBlue;//选中EXCEL所有表格er=sheet.Range[sheet.Cells[1,1],sheet.Cells[rowscount,columncount]];//让EXCEL中的所有单元格的列宽碎文字的长短自动调整er.EntireColumn.AutoFit();//让EXCEL的文本水平居中方式er.HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter;//在表的结尾添加数据导出的时间er=sheet.Range[sheet.Cells[rowscount+1,1],sheet.Cells[rowscount+2,columncount]];er.Merge(0);er.Value=数据生成时间:+DateTime.Now;////设置单元格的背景颜色//er.Cells.Interior.Color=Color.LightBlue;//文本水平居中方式er.HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter;//将文字的颜色设为红蛇er.Font.Color=Color.Red;//保存文件sheet.SaveAs(this.saveFileDialog1.FileName,miss,miss,miss,miss,miss,Excel.XlSaveAsAccessMode.xlNoChange,miss,miss,miss);//关闭表格workbook.Close(false,miss,miss);workbooks.Close();//释放资源excel.Quit();//将进度条重新设为0this.progressBar1.Value=0;//保存成功MessageBox.Show(数据导出成功!\r\n+this.saveFileDialog1.FileName);}}}