Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Set of classes for extremely simple generation plain Excel files and import data from them

License

Notifications You must be signed in to change notification settings

slemvs/Excelerator

Repository files navigation

Excelerator

Set of classes for extremely simple generation plain Excel files

##Get started You can start working with Excelerator by creating a class which will be a row model for your Excel document. Let's define simple row model class.

public class Example1Model
{
  public string Prop1 { get; set; }
  public string Prop2 { get; set; }
}

Then you have to create your implementation of IExcelGenerator<Example1Model> by inherit it from ClosedXmlExcelGenerator<Example1Model>.

public class Example1Generator : ClosedXmlExcelGenerator<Example1Model> { }

Next step you define metadata for each column of your Excel document.

var wsMetadata = new WorksheetMetadata<Example1Model>
{
	Name = "Example1",
	StartColumn = 5,
	StartRow = 3,
	FormatAsTable = true,
	ColumnsMetadata = new List<ColumnMetadata<Example1Model>>
	{
		new ColumnMetadata<Example1Model> {Header = "Prop1", Value = _ => _.Prop1},
		new ColumnMetadata<Example1Model> {Header = "Prop2", Value = _ => _.Prop2}
	}
};

That's all!

You only have to call Generate method of your object of type Example1Generator with metadata and collection of ExcelRowModel of your row model objects List<ExcelRowModel<Example1Model>> as parameters. As result you will get a memory stream. You can save it to file with .xlsx extension or attach it to e-mail.

var data = new List<ExcelRowModel<Example1Model>>()
{
  new ExcelRowModel<Example1Model>() { Data = new Example1Model() { Prop1 = "prop1_1", Prop2 = "prop2_1" }},
  new ExcelRowModel<Example1Model>() { Data = new Example1Model() { Prop1 = "prop1_2", Prop2 = "prop2_2" }},
  new ExcelRowModel<Example1Model>() { Data = new Example1Model() { Prop1 = "prop1_3", Prop2 = "prop2_3" }}
}

var generator = new Example1Generator();
var ms = generator.Generate(wsMetadata, data)

Result file will be like this:

Prop1 Prop2
prop1_1 prop2_1
prop1_2 prop2_2
prop1_3 prop2_3

About

Set of classes for extremely simple generation plain Excel files and import data from them

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages