Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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# 如何在ms word模板中放置标签并使用数据库中的数据填充标签_C#_Asp.net_Templates_Ms Word - Fatal编程技术网

C# 如何在ms word模板中放置标签并使用数据库中的数据填充标签

C# 如何在ms word模板中放置标签并使用数据库中的数据填充标签,c#,asp.net,templates,ms-word,C#,Asp.net,Templates,Ms Word,我需要制作一个应用程序,用户上传某个文档模板(Word等),并在其中放置具有特定ID的控件(标签、文本框),根据控件的ID,我必须使用SQL server中的数据填充模板,然后使Word文档填充有可供下载的数据 使用C#和APS.NET、Javascript、Jquery等我还能做什么 我真的不知道从哪里开始 提前谢谢。我搜索了一下,发现我的问题的解决方案是 我从来没有使用过它,我想我必须搜索很多,直到我可以在我的应用程序中使用它。希望它能很好地工作。您可以使用以下模板制作文档: priavte

我需要制作一个应用程序,用户上传某个文档模板(Word等),并在其中放置具有特定ID的控件(标签、文本框),根据控件的ID,我必须使用SQL server中的数据填充模板,然后使Word文档填充有可供下载的数据

使用C#和APS.NET、Javascript、Jquery等我还能做什么

我真的不知道从哪里开始


提前谢谢。

我搜索了一下,发现我的问题的解决方案是


我从来没有使用过它,我想我必须搜索很多,直到我可以在我的应用程序中使用它。希望它能很好地工作。

您可以使用以下模板制作文档:

priavte void CreateWordDocument(string InputFileNamePath, string OutputFileNamePath)
    {

    Application app = new Microsoft.Office.Interop.Word.Application();   

    doc = app.Documents.Open(InputFileNamePath,ref missing, ref missing,ref Missing, ref Missing);
    // Activate document
    doc.Actiavte();
    //Find place holders in input template and replace them with database values

    this.FindAndReplace(app,"<Name>","John"); //take all values from database 
    this.FindAndReplace(app,"<Address>","Test address");
    this.FindAndReplace(app,"<City>","Test City");

    //Save file
    doc.SaveAs(ref OutputFileNamePath, ref missing, ref missing, ref missing, ref missing);

    doc.Close(ref missing,ref missing,ref missing,)
    }
priavte void CreateWordDocument(string InputFileNamePath、string OutputFileNamePath)
{
Application app=新的Microsoft.Office.Interop.Word.Application();
doc=app.Documents.Open(InputFileNamePath,ref缺失,ref缺失,ref缺失,ref缺失);
//激活文档
Actiavte()文件;
//在输入模板中查找占位符,并用数据库值替换它们
this.findandplace(app,“,”John”);//从数据库中获取所有值

此.FindAndReplace(应用程序“

当您自己用C#编写代码时,还请注意以下方面:

  • 在直接处理文档时,页眉和页脚应该单独处理。当重复元素的一页上有多个相同的值时,我发现在页眉中始终放置第一个定义的值,在页脚中始终放置最后一个定义的值(当它们有引用时)更容易
  • 尽量不要使用XML表示;替换原始XML时,在XML文档中处理页眉和页脚要困难得多
  • 当您使用文档的文本表示来解析内容时(以及当您要插入重复行时,这是必需的),表可能会导致问题表格在文本表示和文档中的光标位置之间引入了偏移量。您需要手动在表格中添加额外的定位点或使用XML表示
  • 或者,当您需要类似表格的结构时,在文档中使用制表符而不是表格
  • 当您需要重复图片、帧或其他更高级的功能时,它们比表格更容易。如果您只需要使用有限的图片列表,如CxO-s的签名,请将它们全部放在Word文档中,并删除根本不需要或不需要重复的图片

  • 对于上传,我建议记住设置元数据属性(这使文档管理系统的工作更轻松)并使用Web服务或类似工具在后端进行处理。

    该模板也将由用户上载。我知道,但我想问的是,该模板是否有任何标准,比如模板上已经写入了多少字段。这就像一个表单,您必须写下您的姓名和其他个人数据。用户将上载文档输入并放置标签“名称”"在空白框中,你应该写你的名字,然后这个应用程序会产生X个不同的名字,我的数据库中的某个表上有不同的名字,编辑文档模板和使文档可以下载是3个不同的任务。编辑模板DOC是我的问题。应用程序需要更加动态。我必须从数据库中获取数据,用户必须在文档中找到相应的位置。例如,在另一种情况下,名字将是: