EPPlus(C#)讀寫Excel

1. EPPlus概述

EPPlus 是使用Open Office XML格式(xlsx)讀寫Excel 2007 / 2010文件的.net開發庫。程序員

2. EPPlus核心類介紹

2.1  ExcelPackage類

ExcelPackage是EPPlus的入口類,解析一個Excel文件,生成ExcelWorkbook對象來表示一個Excel。該類實現了IDisposable接口,也就是說能夠使用using進行對象釋放。函數

10個構造函數,下面是經常使用的3個:this

public ExcelPackage();

public ExcelPackage(FileInfo newFile);

public ExcelPackage(Stream newStream);

2.2 ExcelWorkbook類

ExcelPackageExcelWorkbook類表示了一個Excel文件,其Worksheets屬性對應着Excel的各個Sheet。Worksheets屬性會自動建立,不用擔憂空指針異常,可是其Count可能爲0。spa

ExcelWorkbook的Properties屬性能夠對Office的一些屬性進行設置,例如:.net

public string Author { get; set; }
public string Title { get; set; }
public string Comments { get; set; }

注意:在獲取具體的Sheet時,索引號從1開始,例如:指針

ExcelWorksheet sheet = package.Workbook.Worksheets[1];

2.3 ExcelWorksheet類

一些經常使用屬性:code

sheet.DefaultColWidth = 10; //默認列寬
sheet.DefaultRowHeight = 30; //默認行高
sheet.TabColor = Color.Blue; //Sheet Tab的顏色
sheet.Cells.Style.WrapText = true; //單元格文字自動換行

對行列的增刪操做:orm

public void InsertRow(int rowFrom, int rows);

public void InsertColumn(int columnFrom, int columns);

public void DeleteRow(int rowFrom, int rows);

public void DeleteColumn(int columnFrom, int columns);

設置指定行或列的樣式(寬、高、隱藏、自動換行、數字格式、鎖定等):對象

sheet.Column(1).Width = 10;
sheet.Row(1).Height = 30;

sheet.Column(1).Hidden = true;
sheet.Row(1).Hidden = true;

sheet.Column(1).Style.WrapText = true;

sheet.Column(1).Style.Numberformat.Format = "$#,###.00";

sheet.Row(1).Style.Locked = true;

自適應寬度設置:索引

public void AutoFit();
public void AutoFit(double MinimumWidth);
public void AutoFit(double MinimumWidth, double MaximumWidth);
//未傳入MinimumWidth時,使用Sheet的DefaultColWidth做爲最小值,此時若沒有提早對DefaultColWidth進行設置就會報錯
//此方法時對自動換行和合並的單元格無效

2.4 ExcelRange類

3個獲取單元格範圍的方法:

public ExcelRange this[string Address] { get; }
//Address是指"A1:C5"這種格式

public ExcelRange this[int Row, int Col] { get; }

public ExcelRange this[int FromRow, int FromCol, int ToRow, int ToCol] { get; }

重要屬性:

public object Value { get; set; }
//獲取或設置單元格的值

複製單元格:

public void Copy(ExcelRangeBase Destination);

從二維數據集合中裝載數據:

public ExcelRangeBase LoadFromCollection<T>(IEnumerable<T> Collection);

public ExcelRangeBase LoadFromDataReader(IDataReader Reader, bool PrintHeaders);

public ExcelRangeBase LoadFromText(FileInfo TextFile);
//這裏的文件是指CSV文件

//數據裝載時,會與ExcelRange的行列進行對應,將值設置到其中,這些單元格沒有樣式和數字格式

2.5 公式

sheet.Cells[1, 3].range.Formula = "AVERAGE(A1, B1)";
sheet.Cells[1, 3].FormulaR1C1 = "AVERAGE(RC[-2], RC[-1])";
//以上兩個公式表達意思相同——對於第一行,C列的值等於A列和B列的平均值

使用公式和使用數字格式有一樣的注意事項,須要自行檢查正確性。

建議老是記錄當前Sheet有多少行和列,方便使用公式時定位單元格。

建議對公式相關代碼進行註釋,有助於其餘程序員理解。

相關文章
相關標籤/搜索