EPPlus简介

简介:Epplus是一个使用Open Office XML(Xlsx)文件格式,能读写Excel 2007/2010文件的开源组件
功效:支持对excel文档的汇入汇出,图表(excel自带的图表基本都可以实现)的列印
使用:首先应该下载Epplus的dll文件

1.添加dll文件至工程bin文件中
2.添加引用
using OfficeOpenXml;        
using OfficeOpenXml.Drawing;        
using OfficeOpenXml.Drawing.Chart;        
using OfficeOpenXml.Style;
3.所有的操作语句需要放置在下面的using中
using (ExcelPackage package = new ExcelPackage()) 
 { 
 }
4.添加sheet
 var worksheet = package.Workbook.Worksheets.Add(“sheet1"); 
5.单元格赋值,这里多说一句,NPOI必须先创建单元格,然后再给单元格赋值,而Epplus不需要,直接找到单元格进行赋值就可以了.
worksheet.Cells[int row, int col].Value = "";
或者
worksheet.Cells["A1"].Value = "";
或者
worksheet.SetValue(row,col,value);//这种赋值方法比上面的性能好一些
6.公式计算
//这是乘法的公式,意思是第三列乘以第四列的值赋值给第五列
worksheet.Cells["E2:E4"].Formula = "C2*D2";

//这是求和公式,意思是第二行第三列的值到第四行第三例的值求和后赋给第五行第三列。
worksheet.Cells[5, 3, 5, 5].Formula = string.Format("SUBTOTAL(9,{0})", new ExcelAddress(2,3,4,3).Address);

SUBTOTAL 函数

7.获取一个区域,并对该区域进行样式设置
                using (var range = worksheet.Cells[1, 1, 1, 5]) //获取一个区域,区域范围是第一行第一列到第一行第五列
                {
                    range.Style.Font.Bold = true;
                    range.Style.Fill.PatternType = ExcelFillStyle.Solid;
                    range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);
                    range.Style.Font.Color.SetColor(Color.White);
                }
8.设置单元格样式
                worksheet.Cells["A5:E5"].Style.Border.Top.Style = ExcelBorderStyle.Thin;//设置单元格上边框,同理,右、下、左也一样的设置即可
                worksheet.Cells["A5:E5"].Style.Font.Bold = true;//设置单元格字体加粗
9.设置单元格格式
                worksheet.Cells["C2:C5"].Style.Numberformat.Format = "#,##0";//设置第二行第三列到第五行第三例的数据格式为整数
                worksheet.Cells["D2:E5"].Style.Numberformat.Format = "#,##0.00";//设置第二行第四列到第五行第五列的数据格式为保留小数点后两位
                worksheet.Cells["A2:A4"].Style.Numberformat.Format = "@";//设置第二行第一列到第四行第一列的数据格式为文本格式

                worksheet.Cells.AutoFitColumns(0);  //所有单元格的列都自适应
10.设置筛选器
worksheet.Cells["A1:E4"].AutoFilter = true;//第一行第一列到第四行第五列的数据设置筛选器
11.工作簿进行计算,通常Excel会自动进行计算,但如果你打开工作簿的机器上没有计算引擎,那么这行代码就发挥了作用。
worksheet.Calculate(); 
12.读操作
worksheet.Cells[row, col].Value  //读取指定单元格的值
worksheet.Cells[3, 5].Formula   //读取指定单元格的计算公式
worksheet.Cells[3, 5].FormulaR1C1   //读取指定单元格的R1C1引用方式的公式

看了EPPlus的Sample1到7,其中Sample4是根据现有模板文件导出Excel,Sample7是性能表现。剩余代码有时间继续看。
Sample1 基本的导出Excel
Sample2 读取Excel
Sample3 将数据库的数据导出到Excel,以及在Excel中如何指定单元格为超链接样式
Sample4 根据现有模板文件导出Excel
Sample5 根据Excel中的数据画饼图
Sample6 没有仔细看,导出的Excel相当复杂,各种图标,各种图表
Sample7 性能表现,导出66万条数据也就一分钟不到,主要时间耗在了格式化和IO上,且所有数据都在一个sheet中。

ExcelRange cols = ws.Cells["A:XFD"];//选中所有的列,共16384列

Sample8 读取Excel的数据,并对Excel中Sheet的数据进行linq查询,并输出
Sample9 读取不同的txt文件中的数据,导出到Excel中不同的sheet里,并对数据进行计算以及画出图表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • VBA订制工具栏 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴写字的地方阅读 6,787评论 0 0
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 22,094评论 6 49
  • 一、误删资料恢复 一不小心删错了,还把回收站清空了,咋办啊?只要三步,你就能找回你删掉并清空回收站的东西。 步骤:...
    八爷君阅读 5,449评论 2 7
  • 别和我说你不会EXCEL,半小时让你成为EXCEL高手,据说,80%以上的人看了这个,都相见恨晚,你会么?如果我们...
    夏洛克的克阅读 12,699评论 4 268
  • 没标题,可能是申请错了。懒得改,也不会写,就是烦,没人说话。有一天啊!。我就在想,我活了三十多了。我都干了什么?我...
    流逝的时间我在干嘛阅读 1,238评论 0 0

友情链接更多精彩内容