使用EPPlus读写xlsx文件

本文介绍了一款跨平台的第三方库EPPlus,该库适用于处理Excel 2007及更高版本的.xlsx文件。文中提供了使用EPPlus进行Excel文件读取和写入的具体示例代码,并对比了多种Excel处理方案。

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

转发:https://www.cnblogs.com/libla/p/5824296.html

朋友有个需求,想对N张excel表做过滤和合并的处理,拜托我写个小程序。因为用户的背景是非专业用户,因此最好的选择是写个GUI程序,再加上读写excel的需求,所以我的首选就是C#的WinForm了。

经过搜索,读写excel文件有3种方法:

采用OleDB读取EXCEL文件
引用的com组件:Microsoft.Office.Interop.Excel
利用第三方库
因为前2种方法都只能在windows平台下使用,虽然能够完成当前的需求,不过不利于自身的积累(笔者主要是跨平台开发为主),所以打算趁此机会了解一下读写excel的第三方跨平台库。因此进一步搜索读写excel的库,主要有:

NPOI(http://npoi.codeplex.com/)
MyXls(http://sourceforge.net/projects/myxls/)
Koogra(http://sourceforge.net/projects/koogra/)
ExcelLibrary(http://code.google.com/p/excellibrary/)
ExcelPackage(http://excelpackage.codeplex.com/)
EPPlus(http://epplus.codeplex.com/)
LinqToExcel(http://code.google.com/p/linqtoexcel/)
其中大部分的意见都认为“对于Excel 97-2003格式,还是用NPOI最好;而对于2007(xlsx)以上版本,可以使用EPPlus”。由于工作中基本上都是使用xlsx,因此这里直接选择了EPPlus。

EPPlus读取excel:

复制代码
using (ExcelPackage package = new ExcelPackage(new FileStream(path, FileMode.Open)))
{
for (int i = 1; i <= package.Workbook.Worksheets.Count; ++i)
{
ExcelWorksheet sheet = package.Workbook.Worksheets[i];
for (int j = sheet.Dimension.Start.Column, k = sheet.Dimension.End.Column; j <= k; j++)
{
for (int m = sheet.Dimension.Start.Row, n = sheet.Dimension.End.Row; m <= n; m++)
{
string str = GetValue(sheet, m, j);
if (str != null)
{
// do something
}
}
}
}
}
复制代码
EPPlus写入excel:

复制代码
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet sheet = package.Workbook.Worksheets.Add(“Sheet1”);
sheet.Cells[1, 1].Value = “1”;
sheet.Cells[1, 2].Value = “2”;
sheet.Cells[1, 3].Value = “3”;
sheet.Cells[1, 4].Value = “4”;
sheet.Cells[1, 5].Value = “5”;
sheet.Cells[1, 6].Value = “6”;
using (Stream stream = new FileStream(path, FileMode.Create))
{
package.SaveAs(stream);
}
}
复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值