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有多少行和列,方便使用公式时定位单元格。

建议对公式相关代码进行注释,有助于其余程序员理解。

相关文章
相关标签/搜索