【问题标题】:How to place labels in a ms word template and fill them with data from database如何在 ms word 模板中放置标签并用数据库中的数据填充它们
【发布时间】:2012-10-16 08:18:19
【问题描述】:

我需要制作一个应用程序,用户上传某个文档模板(Word 等),然后他们将具有特定 ID 的控件(标签、文本框)放入其中,并且基于控件的 ID,我必须填写使用来自 SQL 服务器的数据的模板,然后使填充数据的 word 文档可供下载。

无论如何我可以使用 C# 和 APS.NET、Javascript、Jquery 等吗?

我真的不知道从哪里开始。

提前致谢。

【问题讨论】:

  • 模板也会由用户上传。
  • 我知道,但我想问有没有模板的标准,比如模板上已经写了多少字段。
  • 这就像一个表格,您必须在其中写下您的姓名和其他个人数据。用户将上传文档并将标签“NAME”放在你应该写你名字的空白框中,然后应用程序将在我的数据库的某个表上生成 X 个具有不同名称的 word 文档
  • 从 SQl 检索数据、编辑文档模板和使文档可供下载是 3 个不同的任务。
  • @WajidAli 我对第一个和最后一个任务没有任何问题。编辑模板文档是我的问题。

标签: c# asp.net templates ms-word


【解决方案1】:

您可以像下面这样从模板制作文档:

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,)
    }

访问链接以获得更多帮助:http://www.techrepublic.com/blog/howdoi/how-do-i-modify-word-documents-using-c/190

【讨论】:

  • 应用程序需要更加动态。我将不得不从数据库中获取数据,并且用户必须在文档中找到其对应的位置。例如,在另一种情况下,将有:姓名:_________________,我必须将姓名放在空白处...
【解决方案2】:

我搜索了一下,发现我的问题的解决方案是Open XML SDK 2.0 for Microsoft Office

我从未使用过它,而且我想我必须进行大量搜索才能在我的应用程序中使用它。希望它会正常工作。

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      相关资源
      最近更新 更多