【发布时间】:2012-07-25 10:30:12
【问题描述】:
我在 c# 中有一个填充数据的网格。该网格中的一列包含按字母顺序排序的字母(后跟数字),如下所示:
A124
A256
A756
B463
B978
D322
etc.
我需要将这些数据导出为 Word 文档(.doc 或 .docx 格式)。 这就是我为导出信号网格所做的:
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
-
每个新表都应该从一个新页面开始,如下所示:
表 A: A124, A256, A756, //新页面
表 B: B463, B978, //新页面
表 D: D322, 等等
该word文档中的页面需要编号。
有没有办法在 c# 中编写代码来执行此操作,或者是否有一些库/插件可以完成此任务?
一些例子将不胜感激。
【问题讨论】:
-
如果您能够和/或被允许在图书馆上花钱,您可以看看 Aspose.Words 来编写 Word 文档:aspose.com/categories/.net-components/aspose.words-for-.net/…
-
您根本不是在创建 Word 文档。您的代码创建一个 HTML 文档并强制客户端使用 Word 打开它。
标签: c# asp.net grid export-to-word