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