2014-01-06 5 views
0

Как я пытаюсь преобразовать xml-файл в excel.Преобразование xml в excel

Я могу сделать это только с расширениями .xls. Когда я пытаюсь преобразовать xml-файл в excel с расширением .xlsx, я могу создать файл 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

Они два [совершенно разные форматы] (http://www.differencebetween.net/technology/difference-between- XLS-и-XLSX /). Если вы создаете файл 'xls', вы не можете просто переименовать его в' xlsx' и ожидать, что он будет работать. –

ответ

1

Вы не можете просто сбрасывать DataGrid в ответ и ожидать, что она будет подхвачена Excel. Вам нужно преобразовать данные в надлежащем формате. Я нашел NPOI самый подходящий инструмент для этого. Это довольно немного дополнительной работы, но вы сможете делать то, что вам нужно, и у вас будет гораздо больше контроля над полученным файлом Excel.

Смежные вопросы