zoukankan      html  css  js  c++  java
  • 将Excel表格数据转换成Datatable

    /// <summary>
    /// 将Excel表格数据转换成Datatable
    /// </summary>
    /// <param name="fileUrl">文件地址</param>
    /// <param name="table">table命名</param>
    /// <returns></returns>

    public DataTable GetExcelDatatable(string fileUrl, string table)
    {
    //office2007之前 仅支持.xls
    //const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";
    //支持.xls和.xlsx,即包括office2010等版本的 HDR=Yes代表第一行是标题,不是数据;
    string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";

    System.Data.DataTable dt = null;
    //建立连接
    OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));
    try
    {
    //打开连接
    if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
    {
    conn.Open();
    }


    System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    string sqlstr = string.Empty;
    foreach (DataRow item in schemaTable.Rows)
    {
    //获取Excel的第一个Sheet名称
    string sheetName = item["TABLE_NAME"].ToString().Trim();
    //查询sheet中的数据
    string strSql = "select * from [" + sheetName + "]";
    OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
    DataSet ds = new DataSet();
    try
    {
    da.Fill(ds, table);
    }
    catch (Exception)
    {

    throw;
    }

    dt = ds.Tables[0];
    }
    return dt;
    }
    catch (Exception exc)
    {
    throw exc;
    }
    finally
    {
    conn.Close();
    conn.Dispose();
    }
    }

  • 相关阅读:
    linux系统root用户忘记密码的重置方法
    Linux系统的初始化配置
    LINUX awk 函数
    随机产生一个密码,要求同时包含大小写以及数字这三种字符。
    sed 函数 linux
    grep 函数
    linux sort 函数
    从零开始的JAVA -4. 运算符与表达式
    cp
    PATH
  • 原文地址:https://www.cnblogs.com/AbelAngelo/p/10909800.html
Copyright © 2011-2022 走看看