zoukankan      html  css  js  c++  java
  • Excel 导入数据库

    using System.Data;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;

    /// <summary>
    /// ExcellToDataBase 的摘要说明
    /// </summary>
    public class ExcellToDataBase
    {
    /// <summary>
    /// 数据连接配置
    /// </summary>

    /// <param name="cmdText">Execll连接版本</param>
    public ExcellToDataBase( string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'")
    {


    CmdTest = cmdText;
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public string CmdTest { get; set; }

    /// <summary>
    /// Excel数据导入Datable
    /// </summary>
    /// <param name="fileUrl"></param>
    /// <param name="table"></param>
    /// <returns></returns>
    public System.Data.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 = CmdTest ;//可修改//

    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);

    //获取Excel的第一个Sheet名称
    string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();

    //查询sheet中的数据
    string strSql = "select * from [" + sheetName + "]";
    OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
    DataSet ds = new DataSet();
    da.Fill(ds, table);
    dt = ds.Tables[0];

    return dt;
    }
    catch (Exception exc)
    {
    throw exc;
    }
    finally
    {
    conn.Close();
    conn.Dispose();
    }

    }

    /// <summary>
    /// 从System.Data.DataTable导入数据到数据库
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public int InsetData(System.Data.DataTable dt)
    {
    int i = 0;
    string use_id = "";
    string mee_room_id = "";
    string use_row = "";
    string use_column = "";

    foreach (DataRow dr in dt.Rows)
    {
    use_id = dr["nid"].ToString().Trim();//可修改//
    mee_room_id = dr["ntitle"].ToString().Trim();//可修改//
    use_row = dr["content"].ToString().Trim();//可修改//
    use_column = dr["create"].ToString().Trim();//可修改//

    //sw = string.IsNullOrEmpty(sw) ? "null" : sw;
    //kr = string.IsNullOrEmpty(kr) ? "null" : kr;

    string strSql = string.Format(@"Insert into News (ntitle,content,createTime
    ) Values ('{0}','{1}','{2}')", mee_room_id, use_row, use_column);//可修改//


    try
    {
    // SqlConnection sqlConnection = new SqlConnection(strConnection);
    //sqlConnection.Open();
    //SqlCommand sqlCmd = new SqlCommand();
    //sqlCmd.CommandText = strSql;
    //sqlCmd.Connection = sqlConnection;
    //SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();
    DBHelper.ExecuteNonQuery(strSql);
    i++;
    //sqlDataReader.Close();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally
    {

    }
    //if (opdb.ExcSQL(strSql))
    // i++;
    }
    return i;
    }
    }

  • 相关阅读:
    Fetch the result from result set
    Variable shadowing
    What is Servlet Container
    What is a servletcontext
    Inner Class
    Java中HashMap和TreeMap的区别深入理解
    枚举类
    (转载) 安卓开发学习笔记
    【C和C++】停车场系统
    【算法】常用的排序方法
  • 原文地址:https://www.cnblogs.com/zhubenxi/p/5110570.html
Copyright © 2011-2022 走看看