C# 将xml转换为excel

C# 将xml转换为excel,c#,asp.net-mvc,asp.net-mvc-3,export-to-excel,C#,Asp.net Mvc,Asp.net Mvc 3,Export To Excel,当我试图将xml文件转换为excel时 我只能使用.xls文件扩展名来执行此操作。当我尝试使用扩展名.xlsx将xml文件转换为excel时,我可以创建excel文件,但无法打开它 当我尝试打开创建的excel文件时,收到以下错误消息: Excel无法打开文件“Request.xlsx”,因为文件格式或 文件扩展名无效。验证文件是否已损坏,以及文件扩展名是否与文件格式匹配 这是我的密码: dt=project2.ConvertXMLToDataSet(xmlString); 如果(dt.Rows

当我试图将xml文件转换为excel时

我只能使用
.xls
文件扩展名来执行此操作。当我尝试使用扩展名
.xlsx
将xml文件转换为excel时,我可以创建excel文件,但无法打开它

当我尝试打开创建的excel文件时,收到以下错误消息:

Excel无法打开文件“Request.xlsx”,因为文件格式或 文件扩展名无效。验证文件是否已损坏,以及文件扩展名是否与文件格式匹配

这是我的密码:

dt=project2.ConvertXMLToDataSet(xmlString);
如果(dt.Rows.Count>0)
{
字符串文件名=xmlfileName+“.xlsx”;
System.IO.StringWriter tw=新的System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw=新的System.Web.UI.HtmlTextWriter(tw);
DataGrid dgGrid=新DataGrid();
dgrid.DataSource=dt;
dgGrid.DataBind();
dgGrid.RenderControl(hw);
Response.ContentType=“application/vnd.openxmlformats officedocument.spreadsheetml.sheet”;
AppendHeader(“内容处置”,
“附件;文件名=“+filename+”);
Write(tw.ToString());
Response.End();
}

您不能只是将datagrid转储到响应中,并期望Excel能够获取它。您需要以正确的格式转换数据。我找到了最合适的工具。这是一个相当多的额外工作,但是你可以做你需要做的事情,并且你可以更好地控制生成的Excel文件。

我在stackoverflow上发现了两篇旧文章。我希望其中一个能有所帮助:


感谢您提供上述链接。