How to use jump argument in template markers using XlsIO?
This article explains how to use the jump argument in template markers using XlsIO.
What is the jump argument?
The argument specified in the template marker binds the data to the cell at the specified reference. Cell reference addresses can be relative or absolute.
When using a relative address, the data will be imported for every row. However, when using an absolute address, the data will be imported only for that row. We can use a combination of relative and absolute addressing for both rows and columns.
For example, when we want to import each data entry after a certain number of rows or columns in the worksheet, we can use the jump argument.
Syntax
%<MarkerVariable>.<Property>;jump:R[index]C[index] |
Steps to use jump argument
- Create a workbook template with markers in it. Here, Employee is the marker variable referred to a class object, followed by its properties separated by dot (.).
// Adding markers dynamically with the argument, 'Jump' worksheet["A4"].Text = "%Employee.Name;jump:R[2]C[0]"; worksheet["B4"].Text = "%Employee.Id;jump:R[2]C2"; worksheet["C4"].Text = "%Employee.Age;jump:R[2]C[0]";
The below screenshot shows how the markers are applied in workbook template.
- Create template marker processor.
// Create template marker processor ITemplateMarkersProcessor marker = workbook.CreateTemplateMarkersProcessor();
- Add a variable name that is equal to 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 the template marker with the jump 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 = "\"Jump\" Argument"; worksheet["A3"].Text = "Name"; worksheet["B3"].Text = "Id"; worksheet["C3"].Text = "Age"; worksheet["A3:C3"].CellStyle.Font.Bold = true; // Adding markers dynamically with the argument, 'Jump' worksheet["A4"].Text = "%Employee.Name;jump:R[2]C[0]"; worksheet["B4"].Text = "%Employee.Id;jump:R[2]C2"; worksheet["C4"].Text = "%Employee.Age;jump:R[2]C[0]"; // 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 = """Jump"" Argument" worksheet("A3").Text = "Name" worksheet("B3").Text = "Id" worksheet("C3").Text = "Age" worksheet("A3:C3").CellStyle.Font.Bold = True 'Adding markers dynamically with the argument, 'Jump' worksheet("A4").Text = "%Employee.Name;jump:R[2]C[0]" worksheet("B4").Text = "%Employee.Id;jump:R[2]C2" worksheet("C4").Text = "%Employee.Age;jump:R[2]C[0]" '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 below screenshot shows the output document generated using template markers with jump 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 jump argument in template markers using 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!