C#:尝试保存导出的excel文件,但将其另存为网页(.html)
下面是我用来导出excel文件的代码C#:尝试保存导出的excel文件,但将其另存为网页(.html),c#,excel,export-to-excel,C#,Excel,Export To Excel,下面是我用来导出excel文件的代码 public void ExportReport() { DataTable dataTable = new DataTable(); dataTable = getDataTable(); HttpResponse response = HttpContext.Current.Response; GridView grdExportData = new GridView();
public void ExportReport()
{
DataTable dataTable = new DataTable();
dataTable = getDataTable();
HttpResponse response = HttpContext.Current.Response;
GridView grdExportData = new GridView();
grdExportData.AllowPaging = false;
grdExportData.DataSource = dataTable;
grdExportData.DataBind();
//Clear the response and add the content types and headers to it.
response.Clear();
response.ClearContent();
response.ContentType = "application/octet-stream";
DateTime currDate = DateTime.Now;
response.AddHeader("Content-Disposition", "attachment; filename=report.xls")
// Create a dynamic control, populate and render it
GridView excel = new GridView();
excel.DataSource = dataTable;
excel.DataBind();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(response.Output);
htmlTextWriter.Write("<table><tr><td colspan='3'><b>Report Title</b></td><td colspan='1'></td><td colspan='1'><b>Date: </b></td><td colspan='1'>" + DateTime.Today.ToString("MM/dd/yyyy") + "</td></tr></table>");
excel.RenderControl(htmlTextWriter);
response.Flush();
response.End();
}
public void ExportReport()
{
DataTable=新的DataTable();
dataTable=getDataTable();
HttpResponse response=HttpContext.Current.response;
GridView grdExportData=新的GridView();
grdExportData.allowpage=false;
grdExportData.DataSource=dataTable;
grdExportData.DataBind();
//清除响应并向其添加内容类型和标题。
response.Clear();
response.ClearContent();
response.ContentType=“应用程序/八位字节流”;
DateTime currDate=DateTime.Now;
AddHeader(“内容处置”、“附件;文件名=report.xls”)
//创建动态控件,填充并渲染它
GridView excel=新建GridView();
excel.DataSource=dataTable;
excel.DataBind();
HtmlTextWriter HtmlTextWriter=新的HtmlTextWriter(response.Output);
htmlTextWriter.Write(“报告标题日期:+DateTime.Today.ToString(“MM/dd/yyyy”)+”);
excel.RenderControl(htmlTextWriter);
response.Flush();
response.End();
}
代码可以工作并导出报告,但当我在“ms excel”中修改excel工作表并尝试保存文件时,它保存为网页格式。
我希望默认格式为Excel
提前感谢。您需要更改
ContentType
对于
.xls
文件,它是“application/vnd.ms excel”
您不是在创建excel文件,而是在创建具有excel扩展名的HTML文件。(Excel应在打开/保存时警告此问题)如果您希望文件的行为与真正的XLS一样,您需要创建真正的XLS文件。另一种方法是CSV。我搜索了,但没有找到任何东西来创建真正的XLS文件。你知道如何创建一个真正的XLS文件吗?可能是