• 根据excel的文件的路径提取其中表的数据到DataSet中


          在项目中经常涉及到基础数据的导入的问题,很多时候就需要从Excel中获取数据,下面提供一个从Excel文件提取数据到DataSet中方法:

    /// <summary>
            /// 根据excel的文件的路径提取其中表的数据
            /// </summary>
            /// <param name="Path">Excel文件的路径</param>
            /// <returns></returns>
            public static DataSet GetDataFromExcel(string Path)
            {
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection conn;
                DataSet ds = new DataSet();
                try
                {
                    conn = new OleDbConnection(strConn);
                    conn.Open();
                    //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
                    DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
                    //包含excel中表名的字符串数组
                    string[] strTableNames = new string[dtSheetName.Rows.Count];
                    string[] strTables = new string[dtSheetName.Rows.Count];
                    int k;
                    string temp;
                    string[] ids = new string[dtSheetName.Rows.Count];
                    for (k = 0; k < dtSheetName.Rows.Count; k++)
                    {
                        temp = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
                        strTables[k] = temp.Trim('$');
                        strTableNames[k] = temp;
                    }

                    OleDbDataAdapter myCommand = null;
                    for (k = 0; k < dtSheetName.Rows.Count; k++)
                    {
                        DataTable dt = new DataTable();
                        //从指定的表明查询数据,可先把所有表明列出来供用户选择
                        string strExcel = "select * from [" + strTableNames[k] + "]";
                        myCommand = new OleDbDataAdapter(strExcel, strConn);
                        myCommand.Fill(dt);

                        dt.TableName = strTables[k];
                        ds.Tables.Add(dt);

                    }
                    conn.Close();
                }
                catch (Exception ex)
                {
                    //写错误日志...
                    string strOuput = string.Format("获取文件中数据失败,错误信息:{0},异常{1}\n",ex.Message,ex.InnerException);
                    //将信息写入到日志输出文件
                    DllComm.TP_WriteAppLogFileEx(DllComm.g_AppLogFileName, strOuput);

                }
                return ds;
            }

  • 相关阅读:
    页面跳转的方式
    OC中的属性特征
    入门模拟——3.2查找元素 B1041 考试座位号 + long long型存储知识
    入门模拟A1009 Product of Polynomials(25)
    入门模拟A1002 A+B for Polynomials(25)
    入门模拟 B1010——一元多项式求导
    A1065——入门模拟 A+B and C
    微信小程序开发——XMXL语法+列表渲染-条件渲染
    微信小程序开发——配置文件夹和导航栏
    微信小程序开发 小程序框架及文件目录介绍
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2186445.html
Copyright © 2020-2023  润新知