我的页面上有一个DATALIST,模板列里做了一张客户要求的报表。客户给我的是一张WORD的报表。我用网上找的那些代码    //传入数据集,导出Word文档
    public void GetFile(Control gv, HttpResponse res, string fileName)
    {
        res.Clear();
        res.Buffer = true;
        res.Charset = "UTF-7";
        res.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(fileName)) + ".doc");
        // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
        res.ContentEncoding = System.Text.Encoding.UTF7;
        res.ContentType = "application/ms-word";//设置输出文件类型为excel文件。 
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        gv.RenderControl(oHtmlTextWriter);
        res.Output.Write(oStringWriter.ToString());
        res.Flush();
        res.End();
    }
把这个DATALIST导出数据到WORD文档,结果导出来的格式,样式,和我页面中的差距很大。太丑了。有没有什么办法,使我页面的是什么样子,导出来就是什么样啊?求解

解决方案 »

  1.   

    word中有个书签功能,每个书签都有自己的id号,插入书签的操作为:单击word文档中的“插入”--->书签这样在要插入数据的地方天上标签,每个标签弄好id然后,在程序中遍历这些书签,之后将数据插入这些标签即可麻烦就在你得弄好一个word的模板,然后在每个需要插入数据的地方都插入书签,之后就操作程序插入数据就行了。这是遍历书签时候我写的一个循环     string strCase = string.Empty;
        foreach (Word.Book BM in doc2.Books)  //这是最关键的地方:对文档的任何书签进行便利匹配
        {
            strCase = BM.Name.ToString();
            switch (strCase)
            {
                case "a1": //替换Advice书签的内容,其他相同
                    BM.Select();
                    BM.Range.Text = arrList[0].ToString();
                    break;
                case "a2": //替换Advice书签的内容,其他相同
                    BM.Select();
                    BM.Range.Text = arrList[1].ToString();
                    break;
                case "a3": //替换Advice书签的内容,其他相同
                    BM.Select();
                    BM.Range.Text = arrList[2].ToString();
                    break;
             }
        }其中a1,a2...为word书签的id预祝国庆节快乐
      

  2.   

        //传入数据集,导出Word文档
        public void GetFile(Control gv, HttpResponse res, string fileName)
        {
            res.Clear();
            res.Buffer = true;//我个人觉得这里用false 比较好
            res.Charset = "UTF-8";
            res.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(fileName)) + ".doc");
            // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
            res.ContentEncoding = System.Text.Encoding.UTF8;
            res.ContentType = "application/vnd.ms-word";//设置输出文件类型为excel文件。 
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            gv.RenderControl(oHtmlTextWriter);
            res.Output.Write(oStringWriter.ToString());
            res.Flush();
            res.End();
        }导出对WORD格式的支持不是太良好,如果你只是为了打印/存稿  你可以导成pdf 的也行啊。