2016-08-03 81 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