[Windows问题-4] C#读取excel文件

问题:使用C#程序读取excel文件,包括后缀为.xls和.xlsx

相信很多朋友都有在程序中读取excel文件的需求,我在调研的过程中也看了很多文章,基本思路都是正确的,但是有一些代码是没有通过验证的,在实际操作的过程中总会遇到一些问题,经过摸索,最终总结出一套可行的方案,在这里跟大家分享。

读取Excel的方法有多种,我这里选择了一种效率较高的方法,将读取出来的数据存放到一个DataSet之中。

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;
using System.Data;

namespace ConvertEXCEL2DLL
{
    //实现读取Excel文件的功能
    class ReadExcel
    {
        private static String strCon1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        private static String strCon2 = ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;'";
        public static String m_filePathExcel = "c:\\test.xls";

        /*从excel中读取数据*/
        public static DataSet ImportExcelToDataSet()
        {

            OleDbConnection conn = new OleDbConnection(strCon1 + m_filePathExcel + strCon2);
            try
            {
                conn.Open();
            }
            catch (InvalidOperationException ie)
            {
                Console.Write("连接重复打开。\n");
            }
            catch (OleDbException oe)
            {
                Console.Write("在打开连接时出现连接级别的错误。\n");
            }


            OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT *FROM [Sheet1$]", conn);

            DataSet myDataSet = new DataSet();
            try
            {
                myCommand.Fill(myDataSet);

                Console.WriteLine("Read OK ");
            }
            catch (Exception ex)
            {
                Console.Write("formation error");
            }
            return myDataSet;
        }

    }
}
注意:其实这里需要强调的只有一点,那就是strCon1 StrCon2和 m_filePathExcel的格式,要注意这里面的空格不能少,单引号不能少,m_filePathExcel中的\要转义为\\。

HDR = Yes的含义是Excel表中第一行为表头,不需要读出,如果需要则改为No。其他的含义都可以在网上查到。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值