I have a grid in c# filled with data. One of the columns in that grid contains letters (followed by numbers) sorted alphabetically, like this:
A124
A256
A756
B463
B978
D322
etc.
I need to export this data in a word document (.doc or .docx format). This is what i did to export a signle grid:
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();
But now I have to follow this logic: - For every letter from grid a new table with title should be created like this:
Table A:
A124
A256
A756
Each new table should start from a new page, like this:
Table A: A124, A256, A756, //new page
Table B: B463, B978, //new page
Table D: D322, etc.
Pages in that word document need to be numbered.
Is there any way to write a code in c# to do this or is there some library/plugin that can accomplish this task ?
Some examples would be appreciated.
You should be able to use OpenXML SDK from Microsoft to achieve this.
Reference: http://msdn.microsoft.com/en-us/library/bb448854.aspx
Reference Sample: