C#使用第三方组件Epplus操作Excel表

    Epplus操作Excel基础详解

   1.什么是Epplus

        Epplus是一个使用Open Office XML文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要电脑上安装office。

        其中,Open Office XML文档格式包括我们常见的xlsx、docx、pptx等,换而言之,我们常见的这些格式的文件都是基于捆绑XML文件的,使用Epplus操作的本质是通过操作XML文件去操作xlsx。XML,是一种可扩展标记语言,在计算机中,标记指计算机能理解的信息符号,它提供了统一的方法去描述和交换独立于应用程序的结构化数据。使用XML来为Excel工作薄和Word文档提供创建内容的能力。XML在.NET平台之中也具有一席之地,XML解析器在.NET Framework中,由System.XML命名控件提供的。

        我们基于.NET平台使用Epplus组件操作xlsx我们需要添加OpenOfficeXML命名空间。Epplus可以实现Excel上的各种基本功能(如导入导出数据、图表、VBA、数据透视表、加密、数据验证等),唯一缺点是不支持导出2003版Excel。

   2.使用Epplus创建Excel

       首先,添加Epplus的dll文件到项目中,同时在程序中,添加OpenOfficeXML命名空间。

       1.在using语句中,使用ExcelPackage创建ZIP包对象,并且可以在package中传入路径参数。

              using (ExcelPackage package=new ExcelPackage(new FileInfo("D:\\test.xslx")))
                {

                }

      在这里,我需要向大家详细解释一下Epplus-----Open Office XML格式的组件了。Open Office XML格式本身就是基于XML技术与ZIP技术实现的。XML技术,让代码实现了对Excel工作簿和word文档的操作;ZIP技术,实现了多文件压缩归档,让如今的Excel和word还是单文档形式。换而言之,就是如今的07版之后的,excel以及word其实质是一个捆绑了XML文件的ZIP包。

       2.使用ExcelWorksheet创建表对象

              

using (ExcelPackage package=new ExcelPackage(new FileInfo("D:\\test.xlsx")))
             {
                 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test1");
                 worksheet = package.Workbook.Worksheets.Add("test2");
             }

 

      在using语句块中,我们可以创建多个worksheet,但worksheet的名称不能重复,否则会报错。

      worksheet在这里有两个作用,其一,创建了表对象,在Excel文件中,生成了一张表格;

                                             其二,为后面对Excel表格的各种属性的更改以及操作实施的方法提供了一个有效的接口。

       3.使用Package.save()保存Excel

               

 using (ExcelPackage package=new ExcelPackage(new FileInfo("D:\\test.xlsx")))
                {
                       ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test1");
                       worksheet = package.Workbook.Worksheets.Add("test2");
                       package.Save();
                }

 

       只有使用,package.Save()函数后,Epplus组件才会将excel按初始化传入的路径在本地磁盘上进行保存。

    3.使用Epplus对Excel表的操作

         1.添加数据

         Epplus中给单元格赋值非常简单,两种方法:(ps:Epplus的所有行列数都是以1开始的)

       

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

         2.表格样式设置

        到了这里,大家应该可以明白,Epplus组件对Excel的所有操作,均是在Epplus组件内部完成的。

       Epplus组件工作流程:首先创建ZIP包对象ExcelPackage,随后在包对象中通过workbook索引表对象ExcelWorksheet。对表的数据导入或导出,以及表格的格式设置,均是对worksheet进行设置或操作。

转载于:https://www.cnblogs.com/dzw2017/p/6663714.html

当然可以。在C#中,如果不使用第三方库来读取Excel文件中的某一列内容,可以使用.NET框架自带的组件,如Microsoft.Office.Interop.Excel或者System.Data.OleDb命名空间,或者使用较新的EPPlus库(虽然EPPlus不算是第三方库,但它不是.NET Framework自带的,所以这里不采用)。以下是使用System.Data.OleDb命名空间来读取Excel文件中某一列内容的基本步骤: 1. 添加对应的OleDb引用到你的项目中。 2. 创建一个OleDbConnection对象,用于建立与Excel文件的连接。 3. 使用OleDbCommand对象来指定需要执行的查询,比如读取某一列的数据。 4. 使用OleDbDataAdapter对象来填充DataSet或者DataReader。 5. 通过访问填充后的DataSet或DataReader来获取列数据。 下面是一个简单的代码示例,展示了如何使用OleDb来读取Excel文件中名为"ColumnName"的列: ```csharp using System; using System.Data.OleDb; using System.Data; using System.IO; class Program { static void Main() { // 设置Excel文件路径和需要读取的列名 string excelFilePath = @"C:\path\to\your\file.xlsx"; string columnToRead = "ColumnName"; // 连接字符串(需要根据实际情况进行修改) string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={excelFilePath};Extended Properties='Excel 12.0;HDR=YES;'"; // 创建OleDbConnection using(OleDbConnection connection = new OleDbConnection(connectionString)) { try { // 打开连接 connection.Open(); // 创建OleDbCommand对象 string query = $"SELECT [{columnToRead}] FROM [Sheet1$]"; OleDbCommand command = new OleDbCommand(query, connection); // 执行命令并读取数据 using(OleDbDataReader reader = command.ExecuteReader()) { while(reader.Read()) { // 假设列是文本类型,否则需要转换为相应类型 Console.WriteLine(reader[columnToRead]); } } } catch(Exception ex) { Console.WriteLine(ex.Message); } } } } ``` 在上面的代码中,请确保将excelFilePath变量的值替换为实际的文件路径,并且根据你的Excel文件结构调整connectionString中的Extended Properties部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值