2014-01-06 155 views
0

正如我試圖將xml文件轉換爲excel。將xml轉換爲excel

我可以僅使用.xls文件擴展名來執行此操作。當我嘗試將xml文件轉換爲excele .xlsx擴展名時,我可以創建excel文件,但無法打開它。

當我嘗試打開我收到以下錯誤消息的創建Excel文件:

Excel無法打開文件「Request.xlsx'because文件格式或 文件擴展名是無效的。驗證文件是否已損壞,文件擴展名是否與文件的格式相匹配。

這裏是我的代碼:

dt = project2.ConvertXMLToDataSet(xmlString); 

if (dt.Rows.Count > 0) 
{ 

     string filename = xmlfileName + ".xlsx"; 
     System.IO.StringWriter tw = new System.IO.StringWriter(); 
     System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); 
     DataGrid dgGrid = new DataGrid(); 
     dgGrid.DataSource = dt; 
     dgGrid.DataBind(); 
     dgGrid.RenderControl(hw); 
     Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
     Response.AppendHeader("Content-Disposition", 
           "attachment; filename=" + filename + ""); 
     Response.Write(tw.ToString()); 
     Response.End(); 

} 
+2

他們有2個[完全不同的格式(http://www.differencebetween.net/technology/difference-between- XLS-和-XLSX /)。如果你正在生成一個'xls'文件,你不能簡單地將它重命名爲'xlsx'並且期望它能夠工作。 –

回答

1

你不能只是轉儲到數據網格響應,並期望它被Excel回升。您需要以適當的格式轉換數據。我發現NPOI是最合適的工具。這是相當多的額外工作,但是你可以做你需要做的事情,並且你可以更好地控制生成的Excel文件。