2012-06-06 2 views
0

У меня есть сетка в C#, заполненная данными. Один из столбцов в этой сетке содержит буквы (с последующим числами) сортируются в алфавитном порядке, как это:Экспорт данных из C# в документ слова

A124 
A256 
A756 
B463 
B978 
D322 
etc. 

Мне нужно экспортировать эти данные в текстовом документе (.doc или .docx формате). Это то, что я сделал, чтобы экспортировать signle сетки:

var dt = FuntionThatReturnsDatatables(); 

var gd = new GridView 
     { 
      DataSource = dt      
     }; 

     gd.DataBind(); 

     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.Buffer = true; 

     HttpContext.Current.Response.AddHeader("content-disposition", "attachment; 
     filename=" + "List" + DateTime.Now.ToString("dd.MM.yyyy") + ".doc"); 

     HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; 
     HttpContext.Current.Response.ContentType = "application/ms-word"; 
     HttpContext.Current.Response.Charset = "UTF-8"; 

     HttpContext.Current.Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble()); 

     var oStringWriter = new StringWriter(); 
     var oHtmlTextWriter = new HtmlTextWriter(oStringWriter); 

     gd.RenderControl(oHtmlTextWriter); 
     HttpContext.Current.Response.Output.Write(oStringWriter.ToString()); 
     HttpContext.Current.Response.Flush(); 
     HttpContext.Current.Response.End(); 

Но теперь я должен следовать этой логике: - Для каждой буквы из сетки новая таблица с названием должна быть создана так:

Table A: 
A124 
A256 
A756 

enter image description here

enter image description here

  • Каждая новая таблица должна начинаться с новой страницы, как это:

    Таблица A: A124, A256 , A756, // Новая страница

    Таблица B: B463, B978 , // новая страница

    Таблица D: D322, и т.д.

  • страницы в го в текстовом документе необходимо пронумеровать.

Есть ли способ написать код в C# для этого или есть какая-то библиотека/плагин, который может выполнить эту задачу?

Некоторые примеры будут оценены.

+0

Если вы в состоянии и/или разрешено тратить деньги на библиотеке, вы можете посмотреть на Aspose.Words для написания документов Word: http://www.aspose.com/categories/.net-components/aspose.words-for-.net/default.aspx –

+2

Вы вообще не создаете документ Word. Ваш код создает HTML-документ и заставляет клиента открывать его с помощью Word. –

ответ

7
0

Какую версию Слова вы должны работать? Если это версия, которая может обрабатывать формат файла .docx, т. Е. 2007 и более поздние версии, вы можете напрямую сгенерировать эти файлы. Фактически, самый простой способ сделать это - создать файл .docx в Word, который вы используете как своего рода шаблон, а затем программным образом манипулировать xml в этом файле.

Для получения дополнительной информации см

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