在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在現代應用程式中,能夠即時生成 Word 文件對於計費、發票、信件等各種用途來說是至關重要的。Microsoft Word 範本文件功能提供了一種強大的方式以確保一致性和效率。 然而,手動填寫這些模板可能既耗時又容易出錯。 這就是IronWord從Iron Software這是一個強大的 .NET 函式庫,旨在自動化程序化填充 Word 範本的過程。 在本文中,我們將介紹如何使用IronWord填寫 Word 文件模板並提供實例來說明該過程。
在 Microsoft Visual Studio 中創建一個新項目。
安裝IronWord通過 NuGet 套件管理器。
建立一個 Word 樣板文件。
將資料插入 Word 文件並另存為新檔案。
IronWord是一個來自 的 .NET 函式庫Iron Software旨在促進以程式化方式創建、操作和管理 Microsoft Word 文件。 這使得開發人員能夠自動化生成 Word 文件的過程,從而更輕鬆地在其應用中動態創建報告、發票、信件及其他類型的文件。
IronWord允許使用 Word 範本在範本文件中定義佔位符,並在運行時用實際數據替換它們。
您可以輕鬆地在 Word 文件中插入、替換或刪除文字。
該程式庫支援多種格式化選項,包括字型樣式、大小、顏色和段落對齊。
IronWord允許您在文件中插入和操作表格及圖像。
它與不同版本的Microsoft Word 無縫協作,確保兼容性和使用方便性。
函件和通知:為客戶或員工生成個性化的信函和通知。
IronWord 簡化了在 .NET 應用程式中處理 Word 文件的過程,使其成為開發人員想要自動化文件生成和管理任務時的寶貴工具。
在開始之前,請務必確認您已準備好以下項目:
現在,讓我們開始建立一個新的 Visual Studio 專案。
在下方螢幕上選擇主控台應用程式範本。
提供專案名稱和位置。
選擇 .NET 版本(最好是支援的最新版本),然後點擊建立。
在 Visual Studio 中從 NuGet 套件管理器安裝 IronWord NuGet 套件,如下所示。
或者,請使用以下指令透過 CLI 直接安裝它。
dotnet add package IronWord --version 2024.9.1
dotnet add package IronWord --version 2024.9.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronWord --version 2024.9.1
現在,生成一個包含一到兩頁的 Word 範本文件,以便在 Word 文件生成過程中使用。
Dear {Name},
Thanks for Purchasing {product}, happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before expiry date.
Fell Free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Dear {Name},
Thanks for Purchasing {product}, happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before expiry date.
Fell Free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Dear
If True Then
Name
End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
', Thanks for Purchasing
'{
' product
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
', happy @to serve you always.Your application dated
'{
' @Date
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'has been approved.The product comes @with an expiry @date @of
'{
' expiryDate
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'.Renew the product on @or before expiry @date.Fell Free @to contact
'{
' phone
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@or {email} for further queries.Address:
'{
' Address
'}
Thank you,
If True Then
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' Sender}
現在將上面的文件保存為 Template.docx。
using IronWord;
class Program
{
static void Main()
{
License.LicenseKey = "your key";
// Define the path to the template and the output file object sender
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary/ first table of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "IronSoftware" },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
doc.Save(outputPath);
Console.WriteLine("Document filled and saved successfully.");
}
}
using IronWord;
class Program
{
static void Main()
{
License.LicenseKey = "your key";
// Define the path to the template and the output file object sender
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary/ first table of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "IronSoftware" },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
doc.Save(outputPath);
Console.WriteLine("Document filled and saved successfully.");
}
}
Imports IronWord
Friend Class Program
Shared Sub Main()
License.LicenseKey = "your key"
' Define the path to the template and the output file object sender
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "FilledDocument.docx"
' Create a new instance of the WordDocument class
Dim doc As New WordDocument(templatePath)
' Define a dictionary/ first table of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "IronSoftware"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Save the filled document
doc.Save(outputPath)
Console.WriteLine("Document filled and saved successfully.")
End Sub
End Class
提供的代碼展示了如何使用 IronWord 函式庫將特定數據填入 Word 文件範本。 以下是簡要說明:
許可證設置:程式碼首先設置 IronWord 的許可證密鑰以啟用其功能。
文件路徑:它指定了 Word 範本的路徑(Template.docx
)和輸出檔案(FilledDocument.docx
)3. 建立文件實例:使用模板路徑參考建立一個 `WordDocument` 的實例。
定義替換項:建立一個字典,其中的鍵代表模板中的佔位符,值代表要插入的數據。5. 替換佔位符:遍歷字典,將文檔中的每個佔位符替換為相應的數據。
保存文件:最後,使用保存方法和傳遞參數將更新後的文件保存到指定的輸出路徑。7. 完成訊息:打印訊息以確認文件已成功填寫並保存。
輸出
IronWord 也允許添加各種文本效果,如下表所示。
在以下範例中,我們為 Word Iron Software 添加文字效果。
using IronWord;
using IronWord.Models;
class Program
{
static void Main()
{
License.LicenseKey = "your key";
// Define the path to the template and the output file
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "Sale," },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
//doc.Save(outputPath);
//Console.WriteLine("Document filled and saved successfully.");
// Create and configure text style methods
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
GlowEffect = new Glow()
{
GlowColor = IronWord.Models.Color.Aqua,
GlowRadius = 10,
},
};
// Add text with style or image
doc.AddText(" IronSoftware").Style = textStyle;
// Export new Word document
doc.SaveAs("glowEffect.docx");
}
}
using IronWord;
using IronWord.Models;
class Program
{
static void Main()
{
License.LicenseKey = "your key";
// Define the path to the template and the output file
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "Sale," },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
//doc.Save(outputPath);
//Console.WriteLine("Document filled and saved successfully.");
// Create and configure text style methods
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
GlowEffect = new Glow()
{
GlowColor = IronWord.Models.Color.Aqua,
GlowRadius = 10,
},
};
// Add text with style or image
doc.AddText(" IronSoftware").Style = textStyle;
// Export new Word document
doc.SaveAs("glowEffect.docx");
}
}
Imports IronWord
Imports IronWord.Models
Friend Class Program
Shared Sub Main()
License.LicenseKey = "your key"
' Define the path to the template and the output file
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "FilledDocument.docx"
' Create a new instance of the WordDocument class
Dim doc As New WordDocument(templatePath)
' Define a dictionary of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "Sale,"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Save the filled document
'doc.Save(outputPath);
'Console.WriteLine("Document filled and saved successfully.");
' Create and configure text style methods
Dim textStyle As New TextStyle()
textStyle.TextEffect = New TextEffect() With {
.GlowEffect = New Glow() With {
.GlowColor = IronWord.Models.Color.Aqua,
.GlowRadius = 10
}
}
' Add text with style or image
doc.AddText(" IronSoftware").Style = textStyle
' Export new Word document
doc.SaveAs("glowEffect.docx")
End Sub
End Class
說明
修訂後的程式碼展示了使用 IronWord 函式庫填寫 Word 文件範本、設計文字樣式及儲存修改後的文件。 以下是一個簡明的說明:
License Setup: 設定IronWord授權金鑰以啟用功能。
檔案路徑:指定模板的路徑(Template.docx)和輸出檔案(glowEffect.docx).
創建文件實例:使用提供的模板路徑初始化 WordDocument 實例。
定義替代項:創建一個包含佔位符及其相應替代值的字典。
替換佔位符:遍歷字典,將文件中的佔位符替換為實際數據。
設定文字樣式:定義具有光暈效果的文字樣式,指定顏色和半徑。
新增樣式文字:將具有已設置樣式的文字新增至文件中。
儲存文件:將更新的文件以新名稱儲存(glowEffect.docx)反映所應用的文本樣式。
控制台輸出:前面的控制台輸出語句已被註釋掉,並且儲存操作已更新以反映新的文件名稱。
此代碼演示了IronWord的文件自動化和自定義功能,包括文本替換和樣式設定。
輸出
IronWord. 一旦輸入資料,許可證將發送至提供的電子郵件地址。 此授權需要放置在程式碼的開頭,使用前IronWord庫,如下所示。
License.LicenseKey = "your Key Here"
License.LicenseKey = "your Key Here"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'License.LicenseKey = "your Key Here"
IronWord提供了使用模板生成 Word 文件的多項優勢。 它透過允許開發人員以程式化方式填寫特定資料的模板,簡化文件創建自動化,從而減少手動輸入的需求。 這提高了效率和準確性,因為減少了人為錯誤的風險。 另外,IronWord有助於保持文件的一致性,確保每個生成的檔案都遵循相同的格式和結構。 自動化重複性任務可以節省時間和資源,使其非常適合快速生成大量文檔。 IronWord提升生產力,並在需要頻繁或複雜文件生成的情況下簡化工作流程。
按照本文所述步驟並利用所提供的範例進行IronWord,您可以高效地管理文件生成需求並精簡工作流程。