模板文件///生成的具有模板样式的新文件///需插入到文档中的数据publicvoidExportWord(stringtemplateFile,stringfileName,DataTabledt){" />

C# 根据Word 模板生成word 文件

系统 2904 0

 /// <summary>
    /// 调用模板生成word
    /// </summary>
    /// <param name="templateFile">模板文件</param>
    /// <param name="fileName">生成的具有模板样式的新文件</param>

///<param name="dt">需插入到文档中的数据 </param>


    public void ExportWord(string templateFile, string fileName,DataTable dt)
    {
        try
        {
            Word.Application app = new Word.Application(); //生成word程序对象
            //模板文件
            string TemplateFile = templateFile;
            //生成的具有模板样式的新文件
            string FileName = fileName;
            //模板文件拷贝到新文件
            File.Copy(TemplateFile, FileName);
            //生成documnet对象
            Word.Document doc = new Word.Document();
            object Obj_FileName = FileName;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;
            //打开文件
            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref Visible,
                ref missing, ref missing, ref missing,
                ref missing);
            doc.Activate();
            int WordNum = 18;//书签个数
            //将光标转到模板中定义的书签的位置,插入所需要添加的内容,循环次数与书签个数相符
            for (int WordIndex = 1; WordIndex <= WordNum; WordIndex++)
            {
                object WordMarkName = dt.Columns[WordIndex-1].ToString();//word模板中的书签名称
                object what = Word.WdGoToItem.wdGoToBookmark;
                doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref WordMarkName);//光标转到书签的位置
                doc.ActiveWindow.Selection.TypeText(dt.Rows[0][""+dt.Columns[WordIndex-1].ToString()+""].ToString());//插入的内容,插入位置是word模板中书签定位的位置
                //doc.ActiveWindow.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;//设置当前定位书签位置插入内容的格式
                //doc.ActiveWindow.Selection.TypeParagraph();//回车换行
            }
            //输出完毕后关闭doc对象
            object IsSave = true;
            doc.Close(ref IsSave, ref missing, ref missing);
        }
        catch (Exception Ex)
        {
            Response.Write(Ex.ToString());
            return;
        }
    }

//调用生成Word文档

 string templateFile = @"E:\Word模板.doc";
                //生成的具有模板样式的新文件
                string fileName = @"E:\生成文档名" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".doc";              
                ExportWord(templateFile, fileName, dt);

word 文档需根据需求加下对应的书签名

在源代码程序中调试正常,但发布到服务器上时会出现无法生成新的套打文件。解决方案如下:

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
解决方案:
                  
1: 在"开始"->"运行"->dcomcnfg.exe启动"组件服务"。

2: 然后 "组件服务"->"计算机"->"我的电脑"->"DCOM配置"。

3: 在"DCOM配置"中找到“Microsoft Excel 应用程序”,右键,然后点击“属性”->“标识”->选择"启动服务".(注:这里并没有选择为“交互式用户”)

4: 在"安全"标签下:
     a. "启动和激活权限"->"自定义"->"编辑"->增加"NETWORK SERVICE"、"ASP.NET"用户,并给它赋予"本地启动"和"本地激活"权限.
     b. "访问权限"->"自定义"->"编辑"->增加"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
     c. "配置权限"->"自定义"->"编辑"->增加"NETWORK SERVICE"用户和"guest"账号.

C# 根据Word 模板生成word 文件


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论