你可以采用OWC来实现,具体代码参考如下:
using System;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using OWC;namespace cominterop{ public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; private SqlCommand sql; protected System.Web.UI.WebControls.Button export2excel; protected System.Web.UI.WebControls.TextBox xlfile; private SqlConnection cnn; private void Page_Load(object sender, System.EventArgs e) { this.BindDataGrid(); } private void BindDataGrid() { cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;uid=sa;pwd="); sql = new SqlCommand("select * from products",cnn); cnn.Open(); SqlDataReader reader = sql.ExecuteReader(); this.DataGrid1.DataSource = reader; this.DataGrid1.DataBind(); reader.Close(); cnn.Close(); } private void WriteDataGrid2Excel() { SpreadsheetClass xlsheet = new SpreadsheetClass(); cnn.Open(); SqlDataReader reader = this.sql.ExecuteReader(); int numbercols = reader.FieldCount; int row=1; while (reader.Read()) { for (int i=0;i<numbercols;i++) { xlsheet.ActiveSheet.Cells[row,i+1] = reader.GetValue(i).ToString(); } row++; } reader.Close(); cnn.Close(); xlsheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+this.xlfile.Text,OWC.SheetExportActionEnum.ssExportActionNone); } private void export2excel_Click(object sender, System.EventArgs e) { if (this.xlfile.Text.Trim()!="") { this.WriteDataGrid2Excel(); } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.export2excel.Click += new System.EventHandler(this.export2excel_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion }}
using System;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using OWC;namespace cominterop{ public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; private SqlCommand sql; protected System.Web.UI.WebControls.Button export2excel; protected System.Web.UI.WebControls.TextBox xlfile; private SqlConnection cnn; private void Page_Load(object sender, System.EventArgs e) { this.BindDataGrid(); } private void BindDataGrid() { cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;uid=sa;pwd="); sql = new SqlCommand("select * from products",cnn); cnn.Open(); SqlDataReader reader = sql.ExecuteReader(); this.DataGrid1.DataSource = reader; this.DataGrid1.DataBind(); reader.Close(); cnn.Close(); } private void WriteDataGrid2Excel() { SpreadsheetClass xlsheet = new SpreadsheetClass(); cnn.Open(); SqlDataReader reader = this.sql.ExecuteReader(); int numbercols = reader.FieldCount; int row=1; while (reader.Read()) { for (int i=0;i<numbercols;i++) { xlsheet.ActiveSheet.Cells[row,i+1] = reader.GetValue(i).ToString(); } row++; } reader.Close(); cnn.Close(); xlsheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+this.xlfile.Text,OWC.SheetExportActionEnum.ssExportActionNone); } private void export2excel_Click(object sender, System.EventArgs e) { if (this.xlfile.Text.Trim()!="") { this.WriteDataGrid2Excel(); } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.export2excel.Click += new System.EventHandler(this.export2excel_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion }}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货