当前位置:首页 > Web开发 > 正文

.net core下对于Excel的一些操作及使用

2024-03-31 Web开发

在上一篇[.net core下配置、数据库访问等操作实现]主要介绍了读取配置,,数据库操作的一些方法实例,本篇主要介绍下 .net core下针对Excel的相关操作。

对于后台相关的管理系统,Excel导出是基本的功能,下面就简单说下实现该功能的代码实现吧

EPPlus与NPOI的选择

相对于大名鼎鼎的NPOI来说,EPPlus的API更加友好,导出数据的能力也比NPOI更强大点,但在操作Excel的功能上还是NPOI强一点,如果你想导出比较复杂的Excel的话可以使用NPOI,但对于常规需求的话EPPlus基本满足了。

网上也有些两者对比的文章,可以参考下,比如[C# NPOI导出Excel和EPPlus导出Excel比较]

NPOI和EPPlus均已支持 .net core,看不同需求自行选择,这里主要讲下EPPlus的使用。

EPPlus的基本介绍

EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,在导出Excel的时候不需要电脑上安装office。官网地址:

使用的话直接NuGet上获取对应的dll即可。

但有一点注意,EPPlus不支持2003版本的Excel。

创建保存Excel using (ExcelPackage package=new ExcelPackage()) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");//创建worksheet package.Save(); }

1

2

3

4

5

单元格赋值

单元格赋值很简单,指定对应的单元格就可以直接赋值,价格遍历循环就可以进行批量的操作了

worksheet.Cells[1, 1].Value = "测试";//直接指定行列数进行赋值 worksheet.Cells["A1"].Value = "赋值";//直接指定单元格进行赋值

1

2

设置单元格样式 worksheet.Cells[1, 1].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中 worksheet.Cells[1, 1].Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中 worksheet.Cells[1, 4, 1, 5].Merge = true;//合并单元格 worksheet.Cells.Style.WrapText = true;//自动换行

1

2

3

4

5

设置字体 worksheet.Cells[1, 1].Style.Font.Bold = true;//字体为粗体 worksheet.Cells[1, 1].Style.Font.Color.SetColor(Color.White);//字体颜色 worksheet.Cells[1, 1].Style.Font.Name = "微软雅黑";//字体 worksheet.Cells[1, 1].Style.Font.Size = 12;//字体大小

1

2

3

4

设置单元格边框 worksheet.Cells[1, 1].Style.Border.BorderAround(ExcelBorderStyle.Thin, Color.FromArgb(191, 191, 191));//设置单元格所有边框 worksheet.Cells[1, 1].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;//单独设置单元格底部边框样式和颜色(上下左右均可分开设置) worksheet.Cells[1, 1].Style.Border.Bottom.Color.SetColor(Color.FromArgb(191, 191, 191));

1

2

3

设置单元格高和宽 worksheet.Cells.Style.ShrinkToFit = true;//单元格自动适应大小 worksheet.Row(1).Height = 15;//设置行高 worksheet.Row(1).CustomHeight = true;//自动调整行高 worksheet.Column(1).Width = 15;//设置列宽

1

2

3

4

设置单元格格式 worksheet.Cells[1, 1].Style.Numberformat.Format = "#,##0.00";//这是保留两位小数

1

设置sheet背景 worksheet.View.ShowGridLines = false;//去掉sheet的网格线 worksheet.Cells.Style.Fill.PatternType = ExcelFillStyle.Solid; worksheet.Cells.Style.Fill.BackgroundColor.SetColor(Color.LightGray);//设置背景色 worksheet.BackgroundImage.Image = Image.FromFile(@"firstbg.jpg");//设置背景图片

1

2

3

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41295.html