通过EPPlus导出Excel文件

博主工作中常需导出Excel,常见方式不理想,遂找到.net平台的开源组件EPPlus,它使用Open Office XML格式,能读写Excel 2007/2010文件。网上缺乏其中文资料,博主分享了用该组件导出Excel的简单例子,测试发现其在2008 64位机器可运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小弟刚刚走上工作岗位不久,工作中常常遇到要导出Excel的情况,但感觉两种常见的导出方式(一种是通过GridView,另一种是通过微软的COM组 件)都不是很理想,前者导出的灵活度太低,后者又常常出现进程无法回收,所以一直想找个.net平台的第三方Excel组件,于是就在网上找到了 EPPlus。

    EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,官网为:http://epplus.codeplex.com/。 唯一的遗憾是我在网上没有找到有关这个组件的中文资料,我一直不清楚为什么,难道这个组件有什么大缺陷?还是目前还没在国内大量使用?反正我看了官网的介 绍后感觉这个组件还是蛮好的,就决定先用它了。(如果这个组件有什么大缺陷,还请知情人士告诉我一下,省得我再花时间研究它了。)

    下面是一个简单的例子,通过EPPlus组件来导出一个Excel文件(首先添加EPPlus引用)。我是在页面放个button,Onclick事件处理函数如下:

        //创建工作表
OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.ExcelPackage();
OfficeOpenXml.ExcelWorkbook wb
= ep.Workbook;
OfficeOpenXml.ExcelWorksheet ws
= wb.Worksheets.Add("我的工作表");

//配置文件属性
wb.Properties.Category = "类别";
wb.Properties.Author
= "作者";
wb.Properties.Comments
= "备注";
wb.Properties.Company
= "公司";
wb.Properties.Keywords
= "关键字";
wb.Properties.Manager
= "管理者";
wb.Properties.Status
= "内容状态";
wb.Properties.Subject
= "主题";
wb.Properties.Title
= "标题";
wb.Properties.LastModifiedBy
= "最后一次保存者";

//写数据
ws.Cells[1, 1].Value = "Hello";
ws.Cells[
"B1"].Value = "World";
ws.Cells[
3, 3, 3, 5].Merge = true;
ws.Cells[
3, 3].Value = "Cells[3, 3, 3, 5]合并";
ws.Cells[
"A4:D5"].Merge = true;
ws.Cells[
"A4"].Value = "Cells[\"A4:D5\"]合并";

//写到客户端(下载)
Response.Clear();
Response.AddHeader(
"content-disposition", "attachment; filename=FileFlow.xlsx");
Response.ContentType
= "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(ep.GetAsByteArray());
//ep.SaveAs(Response.OutputStream); 第二种方式
Response.Flush();
Response.End();

导出的Excel文件属性:

导出的Excel文件内容:

    我测试了下,这个组件在2008 64位机器上也能运行,如果有感兴趣的,可以试试,至于学习资料,目前好像只有官网有,如果不是因为这个插件本身有缺陷,还希望有兴趣的同志能研究一下,这也是我写此文的目的,希望以后能多点中文的资料,不用头疼去看英文。

引用至: http://www.cnblogs.com/hecool/archive/2011/09/18/2180615.html

转载于:https://www.cnblogs.com/zhangchenliang/archive/2011/09/19/2181255.html

### 使用EPPlus导出Excel文件 为了使用EPPlus导出Excel文件,在项目中需先安装`EPPlus`包。可以通过NuGet包管理器完成此操作。 下面展示一段完整的C#代码示例,用于创建一个新的Excel文件并填充数据: ```csharp using OfficeOpenXml; using System.IO; public void CreateAndExportExcel() { using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 设置表格头 worksheet.Cells[1, 1].Value = "ID"; worksheet.Cells[1, 2].Value = "Name"; worksheet.Cells[1, 3].Value = "Age"; // 添加一些测试数据 for (int row = 2; row <= 5; row++) { worksheet.Cells[row, 1].Value = row - 1; worksheet.Cells[row, 2].Value = $"User{row}"; worksheet.Cells[row, 3].Value = 20 + row % 7; // 对每一行应用样式调整 for (int col = 1; col <= 3; col++) { worksheet.Cells[row, col].Style.Border.BorderAround(OfficeOpenXml.Style.ExcelBorderStyle.Thin); worksheet.Cells[row, col].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; worksheet.Cells[row, col].Style.VerticalAlignment = OfficeOpenXml.Style.ExcelVerticalAlignment.Center; } } // 将生成的Excel文件保存到指定路径下 FileInfo fi = new FileInfo(@"D:\example.xlsx"); package.SaveAs(fi); } } ``` 上述代码展示了如何利用`ExcelPackage`类实例化一个新工作簿,并通过调用其方法向其中添加新的工作表以及设置单元格值[^1]。此外还包含了简单的格式美化逻辑,比如设置了边框线型和文字对齐方式等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值