关闭
首页>C#>正文

C#OLEDB方式读取Excel到datatable

源码 2017-01-12 16:46:20
  • A+
  • 0
  • 2029
阿里妈妈助手源码从这里进 https://www.awobaba.cn/view-10.html ,
最近源码卖得挺多,也做了下小更新,就是对订单获取做了改进,之前的json数据部分不够明细,比如订单所在广告位就没有.
因此只能下载Excel来转换成json给接口调用,那么就要用到读取转换,
这里给出OLEDB方式读取Excel到datatable,代码如下:
using System;
using System.Data;
using System.Data.OleDb;

namespace GetAlimama
{
    class ExcelToDt
    {
        public static System.Data.DataTable ReadExcelToTable(string path)
        {
            try
            {
                //由于阿里妈妈生成的Excel不规范,导致列明乱码,所以这里只能HDR=NO
                string connstring = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;CharacterSet=65001;'";
                using (OleDbConnection conn = new OleDbConnection(connstring))
                {
                    conn.Open();
                    System.Data.DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
                    string firstSheetName = sheetsName.Rows[0][2].ToString();
                    string sql = string.Format("SELECT * FROM [{0}]", firstSheetName);
                    OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
                    DataSet set = new DataSet();
                    ada.Fill(set);
                    return set.Tables[0];
                }
            }
            catch (Exception)
            {
                return null;
            }
        }
    }
}

本文地址:https://www.awobaba.cn/view-25.html

版权声明:本文为原创文章,版权归 阿我巴巴 所有,欢迎分享本文,转载请保留出处!

分享

广告位

评论0 发表评论

还没有评论,赶快抢沙发吧!~
点击获取效验码

Copyright © 阿我巴巴 版权所有.

Process:0.00618s, Memory: 459.78K, Cache: redis. 渝ICP备16003772号

渝公网安备 50022802000338号

本站服务器由 腾讯云 提供