Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从c#导出到word文档_C#_Asp.net_Grid_Export To Word - Fatal编程技术网

将数据从c#导出到word文档

将数据从c#导出到word文档,c#,asp.net,grid,export-to-word,C#,Asp.net,Grid,Export To Word,我有一个c#格式的网格,里面充满了数据。该网格中的一列包含按字母顺序排序的字母(后跟数字),如下所示: A124 A256 A756 B463 B978 D322 etc. Table A: A124 A256 A756 我需要以word文档(.doc或.docx格式)导出此数据。 这就是我导出单网格所做的: var dt = FuntionThatReturnsDatatables(); var gd = new GridView { Dat

我有一个c#格式的网格,里面充满了数据。该网格中的一列包含按字母顺序排序的字母(后跟数字),如下所示:

A124
A256
A756
B463
B978
D322
etc.
Table A:
 A124
 A256
 A756
我需要以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();
但现在我必须遵循这个逻辑: -对于网格中的每个字母,应创建一个标题为的新表,如下所示:

A124
A256
A756
B463
B978
D322
etc.
Table A:
 A124
 A256
 A756

  • 每个新表都应从一个新页面开始,如下所示:

    A124
    A256
    A756
    B463
    B978
    D322
    etc.
    
    Table A:
     A124
     A256
     A756
    
    表A: A124, A256, A756, //新页

    表B: B463, B978, //新页

    表D: D322, 等等

  • word文档中的页面需要编号

有没有办法用c语言编写代码来完成这一任务,或者有什么库/插件可以完成这一任务


请举一些例子。

您应该能够使用Microsoft的OpenXML SDK来实现这一点

参考:

参考样品:


  • 您需要使用哪个版本的Word?如果它是一个可以处理.docx文件格式的版本,即2007及更高版本,那么您可以直接生成这些文件。事实上,最简单的方法是在Word中创建一个.docx文件,将其用作一种模板,然后以编程方式操作该文件中的xml

    有关详细信息,请参阅


    如果您能够和/或允许在图书馆上花钱,您可以看看Aspose.Words来编写Word文档:您根本没有创建Word文档。您的代码创建一个HTML文档,并强制客户端使用Word打开它。