Excel2Object
Excel2Object copied to clipboard
excel convert to .NET Object | Excel与.NET 对象进行转换,支持公式、多Sheet等功能
Excel2Object
Excel convert to .NET Object / .NET Object convert to Excel.
- Top
- NuGet install
- Release notes and roadmap
- Demo code
- Document
- Reference
Platform
NuGet Install
PM> Install-Package Chsword.Excel2Object
Release Notes and roadmap
Features not supported
- [ ] cli tool
- [ ] support auto width column
- [ ] 1. support date datetime time in excel\
Release Notes
- 2024.05.10
- [x] support .net8.0 / .net6.0 / .netstandard2.1 / .netstandard2.0 / .net4.7.2
- [x] clear deprecated library
- 2023.11.02
- [x] support column title mapping Issue39DynamicMappingTitle.cs
- 2023.07.31
- [x] support DateTime and Nullable<DateTime> format ,such as
[ExcelColumn("Title",Format="yyyy-MM-dd HH:mm:ss")]
- 2023.03.26
- [x] support special symbol in columns title #37 Issue37SpecialCharTest.cs
- 2023.02.20
- [x] support platform netstandard2.0/netstandard2.1/.net6.0/.netframework4.7.2
- 2022.03.19
- [x] support ExcelImporterOptions , Skipline Issue32SkipLineImport.cs
- [x] fixed super class prop bug Issue31SuperClass.cs
- 2021.11.4
- [x] multiple sheet , demo & test file : Pr28MultipleSheetTest.cs
- 2021.10.23
- [x] Nullable DateTime bugfixed @SunBrook
- 2021.10.22
- [x] support Nullable, test file :Pr24NullableTest.cs @SunBrook
- 2021.5.28
- [x] support style for header & cell, new [ExcelColumnAttribute] for column.
- [x] support Functions ./ExcelFunctions.md
var list = new List<Pr20Model>
{
new Pr20Model
{
Fullname = "AAA", Mobile = "123456798123"
},
new Pr20Model
{
Fullname = "BBB", Mobile = "234"
}
};
var bytes = ExcelHelper.ObjectToExcelBytes(list, ExcelType.Xlsx);
// model
[ExcelTitle("SheetX")]
public class Pr20Model
{
[ExcelColumn("Full name", CellFontColor = ExcelStyleColor.Red)]
public string Fullname { get; set; }
[ExcelColumn("Phone Number",
HeaderFontFamily = "Normal",
HeaderBold = true,
HeaderFontHeight = 30,
HeaderItalic = true,
HeaderFontColor = ExcelStyleColor.Blue,
HeaderUnderline = true,
HeaderAlignment = HorizontalAlignment.Right,
//cell
CellAlignment = HorizontalAlignment.Justify
)]
public string Mobile { get; set; }
}
- v2.0.0.113
convert project to netstandard2.0 and .net452
fixbug #12 #13
- v1.0.0.80
- [x] support simple formula
- [x] support standard excel model
- [x] excel & JSON convert
- [x] excel & Dictionary<string,object> convert
Support Uri to a hyperlink cell
And also support text cell to Uri Type
- v1.0.0.43
Support xlsx [thanks Soar360]
Support complex Boolean type
- v1.0.0.36
Add ExcelToObject<T>(bytes)
Demo Code
Model
public class ReportModel
{
[Excel("My Title",Order=1)]
public string Title { get; set; }
[Excel("User Name",Order=2)]
public string Name { get; set; }
}
Model List
var models = new List<ReportModel>
{
new ReportModel{Name="a",Title="b"},
new ReportModel{Name="c",Title="d"},
new ReportModel{Name="f",Title="e"}
};
Convert Object to Excel file.
var exporter = new ExcelExporter();
var bytes = exporter.ObjectToExcelBytes(models);
File.WriteAllBytes("C:\\demo.xls", bytes);
Convert Excel file to Object
var importer = new ExcelImporter();
IEnumerable<ReportModel> result = importer.ExcelToObject<ReportModel>("c:\\demo.xls");
// also can use bytes
//IEnumerable<ReportModel> result = importer.ExcelToObject<ReportModel>(bytes);
With ASP.NET MVC In ASP.NET MVC Model, DisplayAttribute can be supported like ExcelTitleAttribute.
Document
http://www.cnblogs.com/chsword/p/excel2object.html
Reference
https://github.com/tonyqus/npoi
https://github.com/chsword/ctrc