2016-08-03 58 views
0

我用下面的代码来生成Excel文件保存Excel不能被使用Excel 2016

private void ExportGridView(GridView gv) 
{ 

    string attachment = "attachment; filename=Factuurtjes.xls"; 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", attachment); 
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
    StringWriter sw = new StringWriter(); 

    HtmlTextWriter htw = new HtmlTextWriter(sw); 
    // Create a form to contain the grid 
    HtmlForm frm = new HtmlForm(); 

    gv.Parent.Controls.Add(frm); 

    //Response.Write("Opdrachtgever geselecteerd: " + ddlContractor.SelectedItem.ToString()); 

    frm.Attributes["runat"] = "server"; 
    frm.Controls.Add(gv); 
    frm.RenderControl(htw); 

    //GridView1.RenderControl(htw); 
    Response.Write(sw.ToString()); 

    Response.End(); 
} 

这一切工作正常和Excel文件被保存,因为它应该打开。

我可以用excel 2013打开excel文件。但是,当我想用​​Excel 2016打开它时,它会给我一个警告消息,指出文件可能已损坏。

我想了一个解决方案,所以我可以打开使用Excel 2016

文件

有人可以帮助我?

在此先感谢。

+0

这是因为导出的文件只是一个html文件,而不是'真正'的xls文档。根据办公室的版本,它可以给出警告。 Kijk eens naar http://epplus.codeplex.com,更多信息请访问excel文档 – VDWWD

+0

谢谢您的回复。如果你不介意,我会用英文进行。在您提供的链接上只有与excel 2007/2010文件相关的文章。我需要excel 2016文件。 – Mand

+0

另外我需要说的是,导出的文件实际上是一个Excel文件,因为它可以使用以前版本的Excel打开。 – Mand

回答

-1
+0

这不是我要找的。我通过代码保存文件(问题中提供),而不是通过Excel本身。您的代码中的 – Mand

+0

excel文件扩展名为.xls,它是2007年以前的Excel版本,而.xlsx扩展名是在Excel 2007及更高版本的版本中创建的,因此将yur文件扩展名Factuurtjes.xls更改为Factuurtjes.xlsx。 –

+0

无法正常工作。已经尝试过。仍然会收到警告消息。 – Mand