通用excel数据导出/转换(二)

本文介绍了在C#中利用OleDB连接读取Excel数据的方法,包括必要的引用和基本的SQL函数应用,如count()和top n *,以实现高效的数据导出和转换。
摘要由CSDN通过智能技术生成

说说c#如何读取excel。

网上看了看,似乎有两种主流办法:

  • 用OleDB,这种做法很通用,读取别的数据源也可以通过这个
  • 引用com组件:Microsoft.Office.Interop.Excel.dll——这个东西就是完完整整的一个excel功能集合了,应该说用来控制excel文件是很好的,但是我这里只需要把里面的数据读出来,所以这个方法有点太全面

那下面就说说OleDB怎么做了,上代码

类开头引用


using System.Data.OleDb;
using System.Data;
public string getInfo()
        {
            string s = "";
            OleDbConnection OleConn;
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.FilePath + ";Extended Properties='Excel 8.0;HDR=True;IMEX=0'";
            OleConn = new OleDbConnection(strConn);

            try
            {
                OleConn.Open();

                DataTable table = OleConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                String sql = "SELECT top 1 * FROM [" + table.Rows[0]["Table_Name"].ToString() + "]";//通过i值获取不同表明

                DataTable dt = new DataTable();
                new OleDbDataAdapter(sql, OleConn).Fill(dt);//填充表,下面就可以通过dt获得表中的内容了
                OleConn.Close();

                DataRow dr = dt.Rows[0];
                s = sql + "\n";
                s += dt.Columns.Count.ToString() + "\n";//列的数量
                s += dt.Columns[0].Caption;//表头
                s += dr[0].ToString();//要获得具体记录的某个属性时,还需要一个DataRow实例
            }
            catch (Exception err)
            {
                OleConn.Close();
                s = "qqqqqqqqqqqqqq";
            }
            return s;
        }

可以说try块前面那几个变量是必备的,除了那个用来做返回值的s。。。

这里还要简单列举一些excel中使用的sql函数

  • count() :要统计记录数的话参数是“”,注意后面要为其标属性名,如 count() as col1 否则会出现expr1000的结果
  • top n *:完整获取前n条记录

好了,代码越精悍越好,这些功能就足够继续下去了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值