In-Table List in Spreadsheet Document

Note
In this article, we will use GroupDocs.Assembly to generate a In-TableList report in Spreadsheet format based on the use case: Working with a Business Case.
Note
The code uses some of the objects defined in The Business Layer.

In-Table List in Microsoft Excel Document

Creating a In-Table List

Practicing the following steps you can create In-Table List Template in MS Excel 2013.

  1. Add a new Workbook.
  2. Select the range of cells that you want to include in the table.
  3. On the Insert tab, in the Tables group, click Table.
  4. Save your Document.

Reporting Requirement

As a report developer, you are required to represent the information of the customers orders quantity with the following key requirements:

  • Report must show customers’ name.
  • It must show the sum of orders prices against each customer.
  • It must sum up all the order prices for all the customers.
  • All the representation must be in tabular form.
  • Report must be generated in the Spreadsheet Document.

Adding Syntax to be evaluated by GroupDocs.Assembly Engine

Customers

Order Quantity

<<foreach [in customers]>><<[CustomerName]>>

<<[Order.Sum(
c => c.ProductQuantity)]>><</foreach>>

Total:

<<[Sum(
m => m.Order.Sum(
c => c.ProductQuantity))]>>

Tip
For detailed technical information about syntax, expressions and report generation by the engine, please visit: Working with GroupDocs.Assembly Engine.

Download In-Table List Template

Please download the sample In-Table List document we created in this article:

Generating The Report

Custom Objects

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List.xlsx";
//Setting up destination document report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List Report.xlsx";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.PopulateData(), "customers"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
view raw gistfile1.txt hosted with ❤ by GitHub

Database Entities

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_DB.xlsx";
//Setting up destination document report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_DB Report.xlsx";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetCustomersDataDB(), "customers"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using DataSet

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_DT.xlsx";
//Setting up destination document report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_DT Report.xlsx";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetCustomersAndOrdersDataDT(), "ds"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using XML DataSource

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_XML.xlsx";
//Setting up destination document report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_XML Report.xlsx";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetAllDataFromXML(), "ds"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using JSON DataSource

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//setting up source
const String strDocumentTemplate = "Spreadsheet Templates/In-Table List.xlsx";
//Setting up destination
const String strDocumentReport = "Spreadsheet Reports/In-Table List_Json Report.xlsx";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();//initialize object of DocumentAssembler class
//Call AssembleDocument to generate In-Table List report in spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
CommonUtilities.SetDestinationDocument(strDocumentReport),
new DataSourceInfo(DataLayer.GetCustomerDataFromJson(), "customers"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

In-Table List in OpenOffice Spreadsheet Document

Creating the Template

OpenDocument Spreadsheet (ODS) is a spreadsheet document format which can be used as an alternative to Microsoft Excel Document (XLS/XLSX) formats. Since ODS is not a Microsoft Proprietary format, there are multiple software (including Microsoft Office and Apache OpenOffice) available to create, open, edit and save this format. For more information on the available software to work with ODS, please visit wikipedia article.

In this topic, we ’ll not reinvent the wheel to recreate a template for generating an ‘In-Table List’ report in ODS format. Instead, we’ll save the existing template to ODS format using Microsoft Office. In order to achieve this; assuming you are using Microsoft Office 2010, please follow below steps:

  1. Open existing template we created in previous topic.
  2. Click “File” and select “Save As”.
  3. Select “OpenDocument Spreadsheet” from “Save As Type” drop down.
  4. Click “Save”.

Download Template

Generating the Report

Custom Objects

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source open spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_OpenDocument.ods";
//Setting up destination open spreadsheet report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List Report.ods";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in open spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.PopulateData(), "customers"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Database Entities

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source open spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_DB_OpenDocument.ods";
//Setting up destination open spreadsheet report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_DB Report.ods";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in open spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetCustomersDataDB(), "customers"`));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using DataSet

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source open spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_DT_OpenDocument.ods";
//Setting up destination open spreadsheet report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_DT Report.ods";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in open spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetCustomersAndOrdersDataDT(), "ds"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using XML DataSource

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//Setting up source open spreadsheet template
const String strSpreadsheetTemplate = "Spreadsheet Templates/In-Table List_XML_OpenDocument.ods";
//Setting up destination open spreadsheet report
const String strSpreadsheetReport = "Spreadsheet Reports/In-Table List_XML Report.ods";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Call AssembleDocument to generate In-Table List Report in open spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strSpreadsheetTemplate),
CommonUtilities.SetDestinationDocument(strSpreadsheetReport),
new DataSourceInfo(DataLayer.GetAllDataFromXML(), "ds"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Using JSON DataSource

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-.NET
//setting up source
const String strDocumentTemplate = "Spreadsheet Templates/In-Table List_OpenDocument.ods";
//Setting up destination
const String strDocumentReport = "Spreadsheet Reports/In-Table List_OpenDocument_Json Report.ods";
try
{
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();//initialize object of DocumentAssembler class
//Call AssembleDocument to generate In-Table List report in open spreadsheet format
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
CommonUtilities.SetDestinationDocument(strDocumentReport),
new DataSourceInfo(DataLayer.GetCustomerDataFromJson(), "customers"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

ODS Template and Report in Apache OpenOffice

In order to check compatibility of ODS between Microsoft Office 2010 and Apache OpenOffice 4.1.2, we performed below tests:

  • We opened the ODS template created through Microsoft Office 2010 in Apache OpenOffice 4.1.2. The template opened successfully in Apache OpenOffice without any issues or formatting losses.
  • We opened the ODS report generated through GroupDocs.Assembly in Apache OpenOffice 4.1.2. The report opened successfully in Apache OpenOffice without any issues or formatting losses.
Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.