4

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

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

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

提前致谢。

4

3 回答 3

3

您可以从模板中创建文档,如下所示:

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

于 2012-10-16T08:50:15.017 回答
1

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

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

于 2012-10-16T08:49:29.790 回答
0

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

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

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

于 2013-10-24T11:40:31.797 回答