Creating Report Using Spire Doc


This article demonstrate how to create report document using spire doc,This article specially demonstrate how to use table in spire.Doc build a report.In this illustration i have displayed list of students and their details like , class, section, number etc. in the tabular format.

Introduction



This article demonstrate how to create report document using spire doc,This article specially demonstrate how to use table in spire.Doc build a report.In this illustration i have displayed list of students and their details like , class, section, number etc. in the tabular format.


Getting Started



Spire Doc Library provides easy way to display list of collection data in tabular format using word document. This library is available in Manage NuGet Packages. You can easily download this library from there.
Here in this this article demonstrates in the following way
1. Filling data of students
2. Creates word document using spire. doc
3. Inserting table into document and Display student data

This below code is the structure of student class which helps to contain details of data about student.

 
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public string Section { get; set; }
public int Number { get; set; }
public double Percentage { get; set; }
}


Fill the list, here GatSutednts function is filling list of student data.
   
private static void GetStudents(List students)
{
Student student = new Student();
student.ID = 1;
student.Name = "Kaialsh";
student.Class = "X";
student.Section = "A";
student.Number = 40;
students.Add(student);

student = new Student();
student.ID = 2;
student.Name = "Vinay";
student.Class = "X";
student.Section = "A";
student.Number = 50;
students.Add(student);

student = new Student();
student.ID = 3;
student.Name = "Ruchit";
student.Class = "X";
student.Section = "B";
student.Number = 60;
students.Add(student);

student = new Student();
student.ID = 4;
student.Name = "Sushil";
student.Class = "X";
student.Section = "B";
student.Number = 70;
students.Add(student);

student = new Student();
student.ID = 5;
student.Name = "Rajesh";
student.Class = "X";
student.Section = "C";
student.Number = 30;
students.Add(student);
}


Creating Document
 
Spire.Doc.Document doc = new Spire.Doc.Document();
Spire.Doc.Section section = doc.AddSection();

Above code creates an object of new word document and inserts a page into the document, here the Document class helps to create object of document and the addSection function helps to insert page into document.



//Adding and formating Header Paragraph
Spire.Doc.HeaderFooter header = section.HeadersFooters.Header;
Spire.Doc.Documents.Paragraph headerParagraph = header.AddParagraph();
headerParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
headerParagraph.Format.Borders.Bottom.BorderType = Spire.Doc.Documents.BorderStyle.ThickThinMediumGap;
headerParagraph.Format.Borders.Bottom.Space = 0.05f;
headerParagraph.Format.Borders.Bottom.Color = System.Drawing.Color.Navy;

Spire.Doc.Fields.TextRange headerText = headerParagraph.AppendText("Annual Report of Students");
headerText.CharacterFormat.FontName = "Cambria";
headerText.CharacterFormat.FontSize = 15;
headerText.CharacterFormat.TextColor = System.Drawing.Color.Navy;


Above code inserts header into page and formats the header text. TheTextRange class of Spire.Doc.Fields namespace contains text of header.


Inserting Table Into Document

//Creating object of table
Spire.Doc.Table table = section.AddTable(true);
//Adding Header Row into table
string[] headerData = { "ID", "Name", "Class", "Section", "Number" };

table.ResetCells(students.Count + 1, headerData.Length);

Spire.Doc.TableRow HRow = table.Rows[0];
HRow.IsHeader = true;
HRow.Height = 23;
HRow.RowFormat.BackColor = System.Drawing.Color.AliceBlue;
for (int i = 0; i < headerData.Length; i++)
{
//Cell Alignment
Spire.Doc.Documents.Paragraph cellParagaraph = HRow.Cells[i].AddParagraph();
HRow.Cells[i].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
cellParagaraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
//Data Format
Spire.Doc.Fields.TextRange textRange = cellParagaraph.AppendText(headerData[i]);
textRange.CharacterFormat.FontName = "Calibri";
textRange.CharacterFormat.FontSize = 14;
textRange.CharacterFormat.TextColor = System.Drawing.Color.Teal;
textRange.CharacterFormat.Bold = true;
}


Above code creates object of table that to be inserted into document. and add a new row into table with cells for displaying as column header.



Now we will insert Rows into table which display student's data (annual report). This below code insert row into table with student's data.



students.ForEach(s =>
{
Spire.Doc.TableRow DataRow = table.Rows[ind];
DataRow.Height = 20;

//Cell Alignment
DataRow.Cells[0].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Spire.Doc.Documents.Paragraph IDCellParagraph = DataRow.Cells[0].AddParagraph();
Spire.Doc.Fields.TextRange IDText = IDCellParagraph.AppendText(s.ID.ToString());
//Format Cells
IDCellParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
IDText.CharacterFormat.FontName = "Calibri";
IDText.CharacterFormat.FontSize = 12;
IDText.CharacterFormat.TextColor = System.Drawing.Color.Brown;

//Cell Alignment
DataRow.Cells[1].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Spire.Doc.Documents.Paragraph NameCellParagraph = DataRow.Cells[1].AddParagraph();
Spire.Doc.Fields.TextRange NameText = NameCellParagraph.AppendText(s.Name);
//Format Cells
NameCellParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
NameText.CharacterFormat.FontName = "Calibri";
NameText.CharacterFormat.FontSize = 12;
NameText.CharacterFormat.TextColor = System.Drawing.Color.Brown;

//Cell Alignment
DataRow.Cells[2].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Spire.Doc.Documents.Paragraph ClassCellParagraph = DataRow.Cells[2].AddParagraph();
Spire.Doc.Fields.TextRange ClassText = ClassCellParagraph.AppendText(s.Class);
//Format Cells
ClassCellParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
ClassText.CharacterFormat.FontName = "Calibri";
ClassText.CharacterFormat.FontSize = 12;
ClassText.CharacterFormat.TextColor = System.Drawing.Color.Brown;

//Cell Alignment
DataRow.Cells[3].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Spire.Doc.Documents.Paragraph SeCellParagraph = DataRow.Cells[3].AddParagraph();
Spire.Doc.Fields.TextRange SecText = SeCellParagraph.AppendText(s.Section);
//Format Cells
SeCellParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
SecText.CharacterFormat.FontName = "Calibri";
SecText.CharacterFormat.FontSize = 12;
SecText.CharacterFormat.TextColor = System.Drawing.Color.Brown;

//Cell Alignment
DataRow.Cells[4].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Spire.Doc.Documents.Paragraph NumberCellParagraph = DataRow.Cells[4].AddParagraph();
Spire.Doc.Fields.TextRange NumberText = NumberCellParagraph.AppendText(s.Number.ToString());
//Format Cells
NumberCellParagraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
NumberText.CharacterFormat.FontName = "Calibri";
NumberText.CharacterFormat.FontSize = 12;
NumberText.CharacterFormat.TextColor = System.Drawing.Color.Brown;
ind++;
}
);

Save your document using SaveToFile function of document class, see the below code

doc.SaveToFile("D://MyReport.docx", Spire.Doc.FileFormat.Docx);
System.Diagnostics.Process.Start("D://MyReport.docx");

Report


Thanks


Comments

No responses found. Be the first to comment...


  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: