首页 >> 大全

C#使用EPPlus操作Excel(读写)

2023-12-22 大全 30 作者:考证青年

之所以使用操作Excel是因为微软自带的运行效率太低,数据多后会特别慢,不能满足现场要求。如果想速度快,而且只是读取Excel的配置还有另一个办法就是将Excel保存成xml文件,参考我的另一个文章:C# 读取XML格式的Excel文件

以前项目中会在Excel中配置参数后,加载动态显示到界面中,动态显示参考我的文章:C# 使用动态显示_花开莫与流年错_的博客-CSDN博客

百度搜常见的有和NPOI,NPOI支持多一点性能差一点

1、下载依赖。在引用》管理NuGet中输入》

安装如下第一个搜索结果

2、示例代码

using OfficeOpenXml;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Study_CSharp
{class MyExcelByEPPlus {public void Test(){Stopwatch watch = new Stopwatch();watch.Start();string path = Directory.GetCurrentDirectory() + @"\" + @"file.xlsx";FileInfo file = new FileInfo(path);ExcelPackage.LicenseContext = LicenseContext.NonCommercial;using (var package = new ExcelPackage(file)){string sheetName = "hello";var sheet = package.Workbook.Worksheets.Where(x => x.Name == sheetName).FirstOrDefault();if (sheet == null){sheet = package.Workbook.Worksheets.Add(sheetName);}sheet.Cells[1, 2].Value = "lalala";         // 第一行、第二列//sheet.SetValue(1, 2, "EPPlus value");sheet.InsertRow(3, 4);package.Save();}watch.Stop();Console.WriteLine($"Time is {watch.ElapsedMilliseconds} ms");Console.ReadLine();}}
}

运行报错处理

c语言读excel_c#数据读写_

1、错误:.:“ set the .

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;    // 添加这行代码后不会报ExcelPackage错误
using (var p = new ExcelPackage()){}

2、错误:.ption:“序列不包含任何元素”

// 会报错的函数是这样的
var sheet = package.Workbook.Worksheets.Where(x => x.Name == "hello").First();
// 原因是因为使用First的时候至少必须有一条数据,使用Single查询的时候查询结果必须有且只有一条数据,如果没有查到任何数据就会报上面异常。
// 解决办法:使用FirstOrDefault和SingleOrDefault,如果没有数据的话,返回对应类型的默认值.
var sheet = package.Workbook.Worksheets.Where(x => x.Name == "hello").FirstOrDefault();

3、sheet.(1, 1, " value");报错:.on:“未将对象引用设置到对象的实例。”

是因为上面的返回的sheet还是空,需要在上面加判断如果为空则添加sheet

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了