将HTML表导出到Excel时出现格式错误

时间:2016-06-10 11:06:48

标签: c# excel

我在c#中将HTML表格导出到Excel但是在打开excel时它会给我一个错误:

enter image description here

我尝试了与“office document.spreadsheetml.sheet”不同的扩展名,例如.xlsx也仍然提供相同的错误。下面是我的C#代码:

//StrExport.Append(@"<html xmlns='urn:schemas-microsoft-com:office:Spreadsheet'  xmlns:ss='urn:schemas-microsoft-com:office:Spreadsheet'  xmlns='http://www.w3.org/TR/REC-html40'><head><title>Time</title>");
        //StrExport.Append(@"<body lang=EN-US id=h1><div class=Section1>");
        StrExport.Append(@"<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'><head><title>Time</title>");
        StrExport.Append(@"<body lang=EN-US style='mso-element:header' id=h1><span style='mso--code:DATE'></span><div class=Section1>");
        StrExport.Append("<DIV  style='font-size:12px;'>");
        StrExport.Append(dvInfo.InnerHtml);
        StrExport.Append("</div></body></html>");
        string strFile = "StudentInformations.xls";
      //  string strFile = "StudentInformations.xlsx";
        string strcontentType = "application/excel";
        //string strcontentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.ClearContent();
        Response.ClearHeaders();
        Response.BufferOutput = true;
        Response.ContentType = strcontentType;
        Response.AddHeader("Content-Disposition", "attachment; filename=" + strFile);
        Response.Write(StrExport.ToString());
        Response.Flush();            
        Response.End();

请提供此消息的解决方案。

1 个答案:

答案 0 :(得分:1)

这是预期的。 您正在导出HTML,但将其命名为.xlsx。 Excel很聪明地解释它,但你会得到这个警告。

要没有警告,您需要使用随时可用的库以本机.xlsx格式构建输出。