在不久前,才使用asp的winform做了一个小型项目。其中就有遇到这个问题。如何把表格里的数据导入到Excel里,一开始想的是把gridview里的内容直接导入到Excel里,后来发现效果并不理想。后来发现直接导入dataset里的数据更好。我也借鉴了很多资料,发现都存在有部分的问题。所以希望写这个博客给后来者减少一点弯路,提供一些帮助。同时感谢大象大象你的鼻子怎么这么长给与我的帮助! 导出到Excel的代码 关于使用Microsoft.Office.Interop.Excel.Application类会报红的解决
话不多说,先上截图。
表格数据截图
表格是使用asp的gridview控件搭配sqldatasource控件写的,样式用的是bootstrap。
导入Excel效果截图
把后台dataset查询到的数据都导出到Excel里
查询数据的代码 private OleDbConnection conn = null; private OleDbCommand cmd = null; private OleDbDataAdapter da; static DataSet datasetF = new DataSet(); static int RecordIndex; private string sql; public void QueryData1(string sqlstr) { conn = new OleDbConnection(); conn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + Server.MapPath("db\manager1.mdb"); conn.Open(); da = new OleDbDataAdapter(sqlstr, conn); datasetF.Clear(); DataSet datasetX = new DataSet(); datasetX.Clear(); da.Fill(datasetX, "QryData"); datasetF = datasetX.Copy(); GridView1.DataSource = datasetX; Session["yuangong"] = GridView1.DataSource; GridView1.DataSourceID = null; GridView1.DataBind(); conn.Close(); }
public bool DataSetToExcel(DataSet dataSet, bool isShowExcle) //dataset是上面存放数据的dataset,isShowExcel表示导出后是否自动打开Excel { DataTable dataTable = dataSet.Tables[0]; int rowNumber = dataTable.Rows.Count; int columnNumber = dataTable.Columns.Count; if (rowNumber == 0) { return false; } //建立Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Application.Workbooks.Add(true); excel.Visible = isShowExcle;//是否打开该Excel文件 //填充数据 for (int c = 0; c < rowNumber; c++) { for (int j = 0; j < columnNumber; j++) { excel.Cells[c + 1, j + 1] = dataTable.Rows[c].ItemArray[j]; } } return true; }
之所以会报红,是因为项目中没有这个类的引用。按照下面的步骤添加引用即可。
1、在项目中找到引用,选择添加引用。
2、在COM中,找到Microsoft.Office.Excel的引用进行添加
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算