2012-06-18 2 views
0

Я работаю над разработкой веб-приложений asp.net 4.0 с помощью C#. Я пытаюсь экспортировать данные Gridview в ms word document. Я использовал следующий код.Как я могу экспортировать данные gridview в ms word

Response.Clear(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", "attachment;filename=MyWord.doc"); 
     Response.ContentEncoding = System.Text.Encoding.UTF7; 
     Response.ContentType = "application/vnd.word"; 
     System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); 
     System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); 
     this.GridView1.RenderControl(oHtmlTextWriter); 
     Response.Output.Write(oStringWriter.ToString()); 
     Response.Flush(); 
     Response.End(); 

Приложение работает без проблем, но он возвращает данные в слово, как

+ADw-div+AD4- +ADw-table cellspacing+AD0AIg-0+ACI- cellpadding+AD0AIg-4+ACI- id+AD0AIg-GridView1+ACI- style+AD0AIg-color:+ACM-333333+ADs-border-collapse:collapse+ADsAIgA+- +ADw-tr style+AD0AIg-color:White+ADs-background-color:+ACM-507CD1+ADs-font-weight:bold+ADsAIgA+- +ADw-th scope+AD0AIg-col+ACIAPg-FileId+ADw-/th+AD4APA-th scope+AD0AIg-col+ACIAPg-PortalId+ADw-/th+AD4APA-th scope+AD0AIg-col+ACIAPg-FileName+ADw-/th+AD4APA-th scope+AD0AIg-col+ACIAPg-Extension+ADw-/th+AD4APA-th scope+AD0AIg-col+ACIAPg-Size+ADw-/th+AD4APA-th scope+AD0AIg-col+ACIAPg-Width+ADw- 

Я знаю, что это очень похоже на HTML, но как я мог бы преобразовать это в реальной один. веди меня.

+0

Я не знаю, что вы видели сходство между HTML и сниппета вас в курсе, но я вы знали, что '.doc' формат MS Word является собственный формат двоичного файла? Вы когда-нибудь открывали файл '.doc', созданный MS Word в« Блокноте », чтобы увидеть, что он напоминает? Кажется, вы пишете текстовый файл, который, очевидно, не имеет никакого отношения к фактическому формату. –

+0

здесь я нахожу div, стиль, cellpadding, tableand td, th в документе. Как мы можем преобразовать этот двоичный формат в фактическую структуру таблицы –

+0

Вы должны использовать стороннюю библиотеку. .NET не имеет ничего встроенного, позволяющего создавать файлы Word. –

ответ

0

это работает для меня это требует itextsharp.dll

  string FName = "filename.doc"; 
      mygrid.AllowPaging = false; 
      mygrid.DataSource = datasource(); 
      mygrid.DataBind(); 
      Response.ClearContent(); 
      Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", FName)); 
      Response.Charset = ""; 
      Response.ContentType = "application/ms-word"; 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      mygrid.RenderControl(htw); 
      Response.Write(sw.ToString()); 
      Response.End(); 
Смежные вопросы