zoukankan      html  css  js  c++  java
  • 根据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;
            }

  • 相关阅读:
    使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库
    方法2:使用Jenkins构建Docker镜像 --SpringCloud
    在jenkins中使用shell命令推送当前主机上的docker镜像到远程的Harbor私有仓库
    解决跟Docker私有仓库登陆,推送,拉取镜像出现的报错
    Linux 内存占用大排查
    方法1:使用Jenkins构建Docker镜像 --SpringCloud
    使用Jenkins编译打包SpringCloud微服务中的个别目录
    使用Jenkins的Git Parameter插件来从远程仓库拉取指定目录的内容
    稀疏检出-使用git检索出仓库里的某一个目录文件,而不是整个仓库的所有文件
    通过 Kubeadm 安装 K8S 与高可用,版本1.13.4
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2184002.html
Copyright © 2011-2022 走看看