无论如何使用.Net framework 4.5或更高版本导出到excel而不使用任何第三方dll?
答案 0 :(得分:0)
有三种使用Office文件的方法:
如果您只需要新格式(.xlsx): OpenXML SDK。或ZipArchieve和XML编写器类。
旧的和新的格式:(t)生锈的办公室COM互操作。虽然这确实支持旧格式和新格式,但它有局限性。它需要办公室,需要在所有正常的COM互操作问题之上进行交互式会话。它通常不适用于网页
OleDB数据提供者:我最近才被告知他们。显然,新的甚至支持新的办公室格式。
我个人的意思是始终使用OpenXML SDK。
答案 1 :(得分:0)
试试此代码,
public static void ExportToExcel(string fileName, string query)
{
try
{
using (MySqlCommand cmd = new MySqlCommand(query))
{
using (DataTable dt = GetData(cmd))
{
GridView GridView2 = new GridView();
GridView2.AllowPaging = false;
GridView2.DataSource = dt;
GridView2.DataBind();
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", fileName));
System.Web.HttpContext.Current.Response.Charset = "HEllo";
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
for (int i = 0; i <= GridView2.Rows.Count - 1; i++)
{
//Apply text style to each Row
GridView2.Rows[i].Attributes.Add("class", "textmode");
}
GridView2.RenderControl(hw);
System.Web.HttpContext.Current.Response.Output.Write(sw.ToString());
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
}
}
catch (Exception ex)
{
WebMsgBox.Show(ex.Message + "Please try After sometime");
}
}