我在ASP.Net中使用以下代码生成Excel文档:
if (dataTable.Rows.Count > 0)
{
var tw = new StringWriter();
var hw = new System.Web.UI.HtmlTextWriter(tw);
var dgGrid = new DataGrid();
dgGrid.DataSource = dataTable;
dgGrid.DataBind();
dgGrid.RenderControl(hw);
attachment = "attachment; filename=" + fileName + ".xls";
Response.Charset = "UTF-8";
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("content-disposition", attachment);
outputResponse = tw.ToString();
}
但是当我想打开Excel文档时,它会出错:
错误:excel无法打开.xls文件,因为文件格式或 文件扩展名无效
我该如何解决?
答案 0 :(得分:0)
使用对Excel Application对象的引用来创建实际的excel文件,使用众多基于codeplex的项目中的一个来创建Excel电子表格,或者最容易从数据网格创建一个CSV文件并返回该文件,这是许多用户计算机将提示他们在Excel中打开。
答案 1 :(得分:0)
刚试过你的代码,但最后一行除外,我改了:
var tw = new StringWriter();
var hw = new System.Web.UI.HtmlTextWriter(tw);
var dgGrid = new DataGrid();
dgGrid.DataSource = dataTable;
dgGrid.DataBind();
dgGrid.RenderControl(hw);
var attachment = "attachment; filename=" + fileName + ".xls";
Response.Charset = "UTF-8";
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("content-disposition", attachment);
// outputResponse = tw.ToString();
Response.Output.Write(tw.ToString());
Response.Flush();
Response.End();
我的数据表是一个包含简单数据(字母和数字)的2-col表,并且它应该打开。
您将收到以下消息:
您尝试打开'yourfilename.xls'的文件与众不同 格式thahn由文件扩展名指定。验证文件是否正确 没有损坏,并且在打开文件之前来自受信任的来源。做 你想现在打开文件吗?
单击“确定”后,文件就会正常打开。