• <menu id="w2i4a"></menu>
  • logo Aspose.Words使用教程

    文檔首頁>>Aspose.Words使用教程>>.NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔

    .NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔


    Word文檔的自動生成已被企業(yè)廣泛用于創(chuàng)建大量報告。在某些情況下,文檔是從頭開始創(chuàng)建的。另一方面,預定義的模板用于通過填充占位符來生成Word文檔。

    在本文中,我將演示如何在C#中以動態(tài)方式和編程方式從模板生成Word文檔。將了解如何從不同類型的數(shù)據(jù)源填充Word模板。本文將介紹以下方案以及代碼示例:

    • 使用C#對象的值從模板生成Word文檔。
    • 使用XML數(shù)據(jù)源生成Word文檔。
    • 使用JSON數(shù)據(jù)源生成Word文檔。
    • 使用CSV數(shù)據(jù)源生成Word文檔。

    Aspose.Words for .NET已升級至V20.3,如果你還沒有用過Aspose.Words可以點擊這里下載最新版測試。


    使用C#對象從模板生成Word文檔

    首先,讓我們看看如何使用C#對象填充Word模板。為此,我們將創(chuàng)建一個Word文檔(DOC / DOCX),該文檔具有以下占位符作為文檔的內容:

    <<[sender.Name]>> says: "<<[sender.Message]>>."

    在這里,發(fā)送者是以下類的對象,我們將使用該類來填充模板。

    public class Sender
    {
    	public string Name { get; set; }
    	public string Message { get; set; }
    
    	public Sender (string _name, string _message)
    	{
    		Name = _name;
    		Message = _message;
    	}
    }

    現(xiàn)在,我們將使用Aspose.Words的報告引擎,按照以下步驟從Sender類的模板和對象生成Word文檔。

    • 創(chuàng)建Document類的對象,并使用Word模板的路徑對其進行初始化。
    • 創(chuàng)建并初始化Sender類的對象。
    • 創(chuàng)建ReportingEngine類的對象。
    • 使用ReportingEngine.BuildReport()填充模板,該模板將Document的對象,數(shù)據(jù)源和數(shù)據(jù)源的名稱作為參數(shù)。
    • 使用Document.Save()方法保存生成的Word文檔。

    下面的代碼示例演示如何從C#中的模板生成Word文檔。

    Document doc = new Document("template.docx");
    Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
    ReportingEngine engine = new ReportingEngine();
    engine.BuildReport(doc, sender, "sender");
    doc.Save("word.docx");

    輸出結果

    .NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔

    從C#中的XML數(shù)據(jù)源生成Word文檔

    為了從XML數(shù)據(jù)源生成Word文檔,我們將使用帶有以下占位符的更為復雜的Word模板:

    <>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
    <>
    Average age: <<[persons.Average(p => p.Age)]>>


    下面給出了我在此示例中使用的XML數(shù)據(jù)源。

    <Persons>
    <Person>
    <Name>John DoeName>
    <Age>30Age>
    <Birth>1989-04-01 4:00:00 pmBirth>
    Person>
    <Person>
    <Name>Jane DoeName>
    <Age>27Age>
    <Birth>1992-01-31 07:00:00 amBirth>
    Person>
    <Person>
    <Name>John SmithName>
    <Age>51Age>
    <Birth>1968-03-08 1:00:00 pmBirth>
    Person>
    Persons>

    以下是從XML數(shù)據(jù)源生成Word文檔的步驟:

    • 創(chuàng)建Document類的實例,并使用Word模板的路徑對其進行初始化。
    • 創(chuàng)建XmlDataSource類的實例,并使用XML文件的路徑對其進行初始化。
    • 創(chuàng)建ReportingEngine類的實例。
    • 以與之前填充Word模板相同的方式使用ReportingEngine.BuildReport()方法。
    • 使用Document.Save()方法保存生成的Word文檔。

    下面的代碼示例演示如何從C#中的XML數(shù)據(jù)源生成Word文檔。

    Document doc = new Document("template.docx");
    XmlDataSource dataSource = new XmlDataSource("datasource.xml");
    ReportingEngine engine = new ReportingEngine();
    engine.BuildReport(doc, dataSource, "persons");
    doc.Save("word.docx");

    輸出結果

    .NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔

    在C#中從JSON數(shù)據(jù)源生成Word文檔

    現(xiàn)在,讓我們看看如何使用JSON數(shù)據(jù)源生成Word文檔。在此示例中,我們將生成按其經(jīng)理分組的客戶列表。在這種情況下,以下為Word模板:

     
    
    <>Manager: <<[Name]>>
    Contracts:
    <>- <<[Client.Name]>> ($<<[Price]>>)
    <>
    < 
    
     
    
    >

    以下是我們將用來填充模板的JSON數(shù)據(jù)源:

    [
    {
    姓名約翰史密斯,
    合同
    [
    {
    客戶
    {
    姓名一家公司
    },
    價格1200000
    },
    {
    客戶
    {
    姓名 B有限公司
    },
    價錢750000
    },
    {
    客戶
    {
    姓名 C&D
    },
    價錢350000
    }
    ]
    },
    {
    姓名托尼安德森,
    合同
    [
    {
    客戶
    {
    名稱 E Corp.
    },
    價錢650000
    },
    {
    客戶
    {
    姓名 F&Partners
    },
    價錢550000
    }
    ]
    },
    ]

    以下是從XML數(shù)據(jù)源生成Word文檔的步驟:

    • 創(chuàng)建Document類的實例,并使用Word模板的路徑對其進行初始化。
    • 創(chuàng)建XmlDataSource類的實例,并使用XML文件的路徑對其進行初始化。
    • 創(chuàng)建ReportingEngine類的實例。
    • 以與之前填充Word模板相同的方式使用ReportingEngine.BuildReport()方法。
    • 使用Document.Save()方法保存生成的Word文檔。

    為了從JSON生成Word文檔,我們將使用JsonDataSource類加載和使用JSON數(shù)據(jù)源,其余步驟將保持不變。下面的代碼示例演示如何使用C#中的JSON從模板生成Word文檔。

    Document doc = new Document("template.docx");
    JsonDataSource dataSource = new JsonDataSource("datasource.json");
    ReportingEngine engine = new ReportingEngine();
    engine.BuildReport(doc, dataSource, "managers");
    doc.Save("word.docx");

    輸出結果

    .NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔

    在C#中從CSV數(shù)據(jù)源生成Word文檔

    為了從CSV生成Word文檔,我們將使用以下Word模板:

     
    
    <>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
    <>
    Average age: <<[persons.Average(p => p.Column2)]>>

    下面給出了我在此示例中使用的XML數(shù)據(jù)源。


    現(xiàn)在,讓我們來看一下C#代碼。除了一個更改,我們將使用CsvDataSource類加載CSV數(shù)據(jù),此處所有步驟都將保持不變。下面的代碼示例演示如何從CSV數(shù)據(jù)源生成Word文檔。

    Document doc = new Document("template.docx");
    CsvDataSource dataSource = new CsvDataSource("datasource.csv");
    ReportingEngine engine = new ReportingEngine();
    engine.BuildReport(doc, dataSource, "persons");
    doc.Save("word.docx");

    輸出結果

    .NET版Word處理控件Aspose.Words功能演示:從C#.NET中的模板生成Word文檔
    還想要更多嗎?您可以點擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();