Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫

Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫

在2.3這一版本的更新中,我們迎來了眾多的使用者、貢獻者,在這個里程碑中我們也添加並修復了一些功能。對於新特點的功能我將在下面進行詳細的描述,當然也歡迎更多的人可以加入進來,再或者也很期待大家來提issues或者PR,您的一個issue或者PR將是我們前進的動力。

Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫
  • 公式導出 #88

(https://github.com/dotnetcore/Magicodes.IE/issues/88)

公式導出目前已經在Excel模板導出中支持,我們可以通過如上代碼片段的格式進行將公式應用到我們的Excel導出模板中.

<code>{{Formula::AVERAGE?params=G4:G6}}/<code><code>{{Formula::SUM?params=G4:G6&G4}}/<code>
  • 增加分欄、分sheet、追加rows導出 #74

(https://github.com/dotnetcore/Magicodes.IE/issues/74)

在該版本中我們支持使用鏈式編程導出我們的Excel,從而起到追加分欄等作用。

在多個DTO導出中我們可以通過如下代碼片段將我們的Excel分欄導出

<code>

exporter

.Append

(

list1

)

.SeparateByColumn

.Append

(

list2

)

.ExportAppendData

(

filePath

);/<code>

導出形式如下所示:




header 1header 2header1row 1 col 1row 1 col 2row1row 2 col 1row 2 col 2row2

我們還可以通過多個DTO進行多Sheet的導出,如下代碼片段所示:

<code>

exporter

.Append

(

list1

)

.SeparateBySheet

.Append

(

list2

)

.ExportAppendData

(

filePath

);/<code>
Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫

當然不僅僅是這樣,我們還可以對行進行追加導出,同時我們可以選擇導出額外的Header信息或者不導出

<code>

exporter

.Append

(

list1

)

.SeparateByRow

.Append

(

list2

)

.ExportAppendData

(

filePath

);/<code>








header 1header 2header1row 1 col 1row 1 col 2row1row 2 col 1row 2 col 2row2row 2 col 1row 2 col 2row2

或者我們可以這樣加入Header信息

<code>

exporter

.Append

(

list1

)

.SeparateByRow

.AppendHeaders

.Append

(

list2

)

.ExportAppendData

(

filePath

);/<code>









header 1header 2header1row 1 col 1row 1 col 2row1row 2 col 1row 2 col 2row2header 1header 2header1row 2 col 1row 2 col 2row2
  • 添加對ExpandoObject類型的支持#135

(https://github.com/dotnetcore/Magicodes.IE/issues/135)

特別感謝 sgalcheung(
https://github.com/sgalcheung)
添加該特性的導出,具體使用方式如下所示:

<code>class Program/<code><code> {/<code><code> static async Task Main(

string

[] args)/<code><code> {/<code><code> IExporter exporter = new ExcelExporter;/<code><code> // 生成測試數據/<code><code> var personList = GenFu.GenFu.ListOf;/<code>
<code> // 導出一個只包含

"FirstName"

,

"LastName"

列的excel/<code><code>

string

fields =

"FirstName,LastName"

; // 可自定義導出想要的字段/<code><code> var expandoObjectList = new List(personList.Count);/<code><code> var propertyInfoList = new List;/<code><code> var fieldsAfterSplit = fields.Split(

','

);/<code><code>

foreach

(var field

in

fieldsAfterSplit)/<code><code> {/<code><code> var propertyName = field.Trim;/<code><code> var propertyInfo = typeof(Person).GetProperty(propertyName);/<code>
<code>

if

(propertyInfo == )/<code><code> {/<code><code> throw new Exception($

"Property: {propertyName} 沒有找到:{typeof(Person)}"

);/<code><code> }/<code>
<code> propertyInfoList.Add(propertyInfo);/<code><code> }/<code>
<code>

foreach

(var person

in

personList)/<code><code> {/<code><code> var shapedObj = new ExpandoObject;/<code>
<code>

foreach

(var propertyInfo

in

propertyInfoList)/<code><code> {/<code><code> var propertyValue = propertyInfo.GetValue(person);/<code><code> ((IDictionary<

string

, object>)shapedObj).Add(propertyInfo.Name, propertyValue);/<code><code> }/<code>
<code> expandoObjectList.Add(shapedObj);/<code><code> }/<code>
<code>

string

filePath = Path.Combine(Directory.GetCurrentDirectory,

"dynamicExportExcel.xlsx"

);/<code><code> var result = await exporter.ExportAsByteArray(expandoObjectList);/<code><code> File.WriteAllBytes(filePath, result);/<code><code> }/<code><code> }/<code>

<code> class Person/<code><code> {/<code><code> public

string

FirstName { get; set; }/<code><code> public

string

LastName { get; set; }/<code><code> public

string

Title { get; set; }/<code><code> public int Age { get; set; }/<code><code> public int NumberOfKids { get; set; }/<code><code> }/<code>

感謝大家對Magicodes.IE的支持。關於更多發佈信息大家可以參閱:

  • https://github.com/dotnetcore/Magicodes.IE/blob/master/RELEASE.md

  • https://github.com/dotnetcore/Magicodes.IE

轉載是一種動力 分享是一種美德

Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫

如果喜歡作者的文章,請關注【麥扣聊技術】訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

原文作者:HueiFeng

文檔官網:docs.xin-lai.com

編程交流群<85318032>

產品交流群<897857351>

Magicodes.IE 2.3重磅發佈——.NET Core開源導入導出庫


分享到:


相關文章: