How to use horizontal argument in template markers using WinForms XlsIO?
This article explains how to use the horizontal argument in template markers using XlsIO.
What is the horizontal argument?
The horizontal argument specified in a template marker fills data in a horizontal direction. By default, the data filling is in a vertical direction.
Syntax
%<MarkerVariable>.<Property>;horizontal |
Steps to use the horizontal argument
- Create a workbook template with markers in it. Here, Employee is the marker variable referring to a class object, followed by its properties separated by a dot (.).
// Adding markers dynamically with the argument, 'horizontal'
worksheet["B3"].Text = "%Employee.Name;horizontal";
worksheet["B4"].Text = "%Employee.Id;horizontal";
worksheet["B5"].Text = "%Employee.Age;horizontal";
The screenshot below shows how the markers are applied in the workbook template.
- Create a template marker processor.
// Create a template marker processor
ITemplateMarkersProcessor marker = workbook.CreateTemplateMarkersProcessor();
- Add a variable name that matches the class object specified in step 1.
// Add marker variable
marker.AddVariable("Employee", GetEmployeeDetails());
- Apply markers.
// Apply markers
marker.ApplyMarkers();
The following C#/VB.NET complete code snippet shows how to use a template marker with the horizontal argument in XlsIO.
using Syncfusion.XlsIO;
using System.Collections.Generic;
using System.IO;
namespace TemplateMarker
{
class Employee
{
private string m_name;
private int m_id;
private int m_age;
public string Name
{
get
{
return m_name;
}
set
{
m_name = value;
}
}
public int Id
{
get
{
return m_id;
}
set
{
m_id = value;
}
}
public int Age
{
get
{
return m_age;
}
set
{
m_age = value;
}
}
}
class Program
{
public static List<Employee> GetEmployeeDetails()
{
List<Employee> employeeList = new List<Employee>();
Employee emp = new Employee();
emp.Name = "Andy Bernard";
emp.Id = 1011;
emp.Age = 35;
employeeList.Add(emp);
emp = new Employee();
emp.Name = "Jim Halpert";
emp.Id = 1012;
emp.Age = 26;
employeeList.Add(emp);
emp = new Employee();
emp.Name = "Karen Fillippelli";
emp.Id = 1013;
emp.Age = 28;
employeeList.Add(emp);
return employeeList;
}
public static void Main(string[] args)
{
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
IWorkbook workbook = application.Workbooks.Create(1);
IWorksheet worksheet = workbook.Worksheets[0];
//Adding header text
worksheet["A1"].Text = "\"Horizontal\" Argument";
worksheet["A3"].Text = "Name";
worksheet["A4"].Text = "Id";
worksheet["A5"].Text = "Age";
worksheet["A3:A5"].CellStyle.Font.Bold = true;
// Adding markers dynamically with the argument, 'horizontal'
worksheet["B3"].Text = "%Employee.Name;horizontal";
worksheet["B4"].Text = "%Employee.Id;horizontal";
worksheet["B5"].Text = "%Employee.Age;horizontal";
// Create template marker processor
ITemplateMarkersProcessor marker = workbook.CreateTemplateMarkersProcessor();
// Add marker variable
marker.AddVariable("Employee", GetEmployeeDetails());
// Apply markers
marker.ApplyMarkers();
// Save and close the workbook
Stream stream = File.Create("Output.xlsx");
worksheet.UsedRange.AutofitColumns();
workbook.SaveAs(stream);
}
}
}
}
Imports Syncfusion.XlsIO
Imports System.Collections.Generic
Imports System.IO
Namespace TemplateMarker
Class Employee
Private m_name As String
Private m_id As Integer
Private m_age As Integer
Public Property Name As String
Get
Return m_name
End Get
Set(ByVal value As String)
m_name = value
End Set
End Property
Public Property Id As Integer
Get
Return m_id
End Get
Set(ByVal value As Integer)
m_id = value
End Set
End Property
Public Property Age As Integer
Get
Return m_age
End Get
Set(ByVal value As Integer)
m_age = value
End Set
End Property
End Class
Class Program
Public Shared Function GetEmployeeDetails() As List(Of Employee)
Dim employeeList As List(Of Employee) = New List(Of Employee)()
Dim emp As Employee = New Employee()
emp.Name = "Andy Bernard"
emp.Id = 1011
emp.Age = 35
employeeList.Add(emp)
emp = New Employee()
emp.Name = "Jim Halpert"
emp.Id = 1012
emp.Age = 26
employeeList.Add(emp)
emp = New Employee()
emp.Name = "Karen Fillippelli"
emp.Id = 1013
emp.Age = 28
employeeList.Add(emp)
Return employeeList
End Function
Public Shared Sub Main(ByVal args As String())
'Instantiate the spreadsheet creation engine
Using excelEngine As ExcelEngine = New ExcelEngine()
Dim application As IApplication = excelEngine.Excel
Dim workbook As IWorkbook = application.Workbooks.Create(1)
Dim worksheet As IWorksheet = workbook.Worksheets(0)
'Adding header text
worksheet("A1").Text = """Horizontal"" Argument"
worksheet("A3").Text = "Name"
worksheet("A4").Text = "Id"
worksheet("A5").Text = "Age"
worksheet("A3:A5").CellStyle.Font.Bold = True
'Adding markers dynamically with the argument, 'horizontal'
worksheet("B3").Text = "%Employee.Name;horizontal"
worksheet("B4").Text = "%Employee.Id;horizontal"
worksheet("B5").Text = "%Employee.Age;horizontal"
'Create template marker processor
Dim marker As ITemplateMarkersProcessor = workbook.CreateTemplateMarkersProcessor()
'Add marker variable
marker.AddVariable("Employee", GetEmployeeDetails())
'Apply markers
marker.ApplyMarkers()
'Save and close the workbook
Dim stream As Stream = File.Create("Output.xlsx")
worksheet.UsedRange.AutofitColumns()
workbook.SaveAs(stream)
End Using
End Sub
End Class
End Namespace
The screenshot below shows the output document generated using template markers with the horizontal argument.
Take a moment to peruse the documentation where you can find basic Excel document processing options along with the features like import and export data, chart, formulas, conditional formatting, data validation, tables, pivot tables and protect the Excel documents, and most importantly, the PDF, CSV and Image conversions with code examples.
Conclusion
I hope you enjoyed learning about how to use horizontal argument in template markers using WinForms XlsIO.
You can refer to our XIsIO’s feature tour page to learn about its other groundbreaking features. Explore our UG documentation and online demos to understand how to manipulate data in Excel documents.
If you are an existing user, you can access our latest components from the License and Downloads page. For new users, you can try our 30-day free trial to check out XlsIO and other Syncfusion® components.
If you have any queries or require clarification, please let us know in the comments below or contact us through our support forums, Support Tickets, or feedback portal. We are always happy to assist you!