C#教程之.net 操作excel

金沙澳门官网网址:www.js333com

VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > C#编程 >
  • C#教程之.net 操作excel

  • 2019-07-12 22:54 来源:www.js333com

.net 操作excel的常用组件:EPPlus,NPOI

1.NPOI,即POI的.NET版本(POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office文件,格式包括xls, doc, ppt等。)
 
2.EPPlus, Epplus是一个使用Open Office XML文件格式,能读写Excel的第三方插件。
 
先介绍几个基础的类:
 
(1)ExcelPackage  ExcelPackage是EPPlus的入口类,解析一个Excel文件,该类实现了IDisposable接口,可以使用using进行对象释放。
常用构造函数:
public ExcelPackage();
public ExcelPackage(FileInfo newFileInfo);
public ExcelPackage(Stream newStream);
using (ExcelPackage package = new ExcelPackage(new FileInfo(path);))
{   package.Save();//保存后 Epplus组件才会将excel按初始化传入的路径在本地磁盘上进行保存。
} 

 

复制代码
MemoryStream stream = new MemoryStream();
using (ExcelPackage package = new ExcelPackage(stream))
{    package.SaveAs(stream);
}
stream.Position = 0;
return stream;
复制代码

 

(2)ExcelWorkbook  ExcelWorkbook类表示了一个Excel文件。

 

(3)ExcelWorksheet    是ExcelWorkbook 的属性,对应每一个不同的sheet。

给excel文件添加多个sheet

1
2
3
List<ExcelWorksheet> ews= new List<ExcelWorksheet>();
ews.Add(package.Workbook.Worksheets.Add("sheetName1"));//sheet1
ews.Add(package.Workbook.Worksheets.Add("sheetName2"));//sheet2

 sheet的一些属性

1
2
3
4
5
6
7
8
9
ews[0].Row(1).Height = 24;//行高  
ews[0].Row(1).CustomHeight = true;//自动调整行高  
ews[0].Column(2).AutoFit(20);//列宽(Epplus的所有行列数都是以1开始的)  
ews[0].Column(2).Width = 20;//列宽  
ews[0].Cells.AutoFitColumns();//自动列宽  
ews[0].Cells .Style .ShrinkToFit = true;//单元格自适应  
ews[0].Cells.Style.WrapText = true;//自动换行  
ews[0].Hidden = eWorkSheetHidden.Hidden;//隐藏sheet  
ews[0].Protection.IsProtected = true;//锁定sheet,不可更改

 

(4)ExcelRange类    sheet内自定义区域。

定义区域

1
2
ExcelRange range1 = wss[c].Cells[2, 1];// Row, Col
ExcelRange range2 = wss[c].Cells[1, 1,3,3];//FromRow, FromCol, ToRow, ToCol

 range的一些属性

1
2
3
4
5
6
7
range.Style.Border.Left.Style = ExcelBorderStyle.Thin;//边框
range.Style.Font.Color.SetColor(System.Drawing.Color.Red);//字体颜色
range.Value = "111";//区域的值
range.Merge = true;//合并
range.Style.WrapText = true;//自动换行
range.AutoFitColumns(10);//列宽
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//对齐方式
Baidu
sogou