C# Excel ole文件读写操作类

本文介绍了一个C#编写的Excel操作类,支持Office2003和2007以上版本的xls/xlsx格式。该类实现了新建、读取和写入Excel数据的功能,包括根据模板创建工作簿、从DataSet填充数据、读取数据到DataSet和DataTable,以及向已有表格追加数据。使用时需引用Microsoft.Office.Interop.Excel和Microsoft.Office.Core库。对于无Microsoft Office环境的操作,推荐使用NPOI库。
摘要由CSDN通过智能技术生成

在最近的项目中,需要将生产数据存入Excel中进行保存,于是参照ExcelHelper类(http://www.cnblogs.com/VAllen/articles/ExcelHelper_Peng.html),整理修改了一个Excel操作类,提供了两种连接字符串,支持offic2003格式和office2007及以上版本的xls、xlsx格式,请自行选择。转载请注明源地址。

实现的功能:

新建:

1.按照提供的模板新建空白Excel工作簿;

2.按照DataSet中的数据,新建包含Sheet和表头的新工作簿;

读取:

1.读取Excel工作簿中的数据,存入DataSet;

2.读取Excel第一个表格中的数据,存入DataTable;

写入:

1.向工作簿已有表格中追加数据(添加行和sheet);


注意:

使用时需要在工程中添加Microsoft.Office.Interop.Excel和Microsoft.Office.Core两项引用。


下面是代码部分:

</pre><pre name="code" class="csharp">using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Reflection;

namespace YourNamespace
{
    /// <summary>
    /// Excel 操作类,by southpolaris
    /// </summary>
    class ExcelOperate
    {

        private readonly string connectionString;
        public OleDbConnection odc; //连接对象
        private Microsoft.Office.Interop.Excel.Application excel;

        private static bool firstRead = true; //第一次写入获取已有行数
        private static long startIndex = 0;

        /// <summary>
        /// 初始化一个Excel操作实例
        /// </summary>
        /// <param name="pathString">请提供一个Excel文件路径,无论是已创建的或者是未创建的</param>
        public ExcelHelper(string pathStr)
        {
            this.connectionString = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source =" + pathStr + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\""; //for Office2007-2013
            this.connectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + pathStr +  ";Extended Properties=Excel 8.0;Persist Security Info=False";  //for Office1997-2003
            this.odc = new OleDbConnection(connectionString);
            excel = new Microsoft.Office.Interop.Excel.Application();//create Excel manipulate objects
        }

        /// <summary>
        /// 读取Excel文档所有数据
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>Excel文档所有数据</returns>
        public DataSet ReadExcel(string sql)
        {
            DataSet ds = new DataSet();
            odc.Open();
            OleDbDataAdapter oda = new OleDb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值