zoukankan      html  css  js  c++  java
  • .NET 浅谈EXCEL上传

     关于excel的上传,我们在编码时候经常会遇到,无非就是我们要获取到excel中的值,然后做操作。关键就是如何获取到excel的值

    filePath=“”//excel路径 

    DataTable table = getExcelTableName(filePath);

      DataSet ds = ReadExcel(filePath, table.Rows[0]["Table_Name"].ToString());

    我们只要获取到了这个DataSet就能执行一系列操作了

       public DataTable getExcelTableName(string excelPath)
        {
            if (String.IsNullOrEmpty(excelPath))
            {
                return null;
            }

            if (!System.IO.File.Exists(excelPath))
            {
                return null;
            }

            OleDbConnection conn = null;

            try
            {
                DataTable table = new DataTable();

               // string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelPath + ";" + "Extended Properties=Excel 8.0;";
                string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";

                conn = new OleDbConnection(strConn);

                conn.Open();

                table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                conn.Close();

                return table;
            }

            catch
            {
                conn.Close();

                MessageBox("解析Excel出錯。可能原因有:\\n\\n1:選擇文件類型非Excel格式文件,正確格式為:XXXX.xls!\\n\\n2:該文件被其他進程佔用!\\n\\n3:该文件不存在!");

                return null;
            }
        }

       public DataSet ReadExcel(string excelPath, string ExceltableName)
        {
            string strConn = "";

            OleDbConnection conn = null;

            if (String.IsNullOrEmpty(excelPath))
            {
                return null;
            }

            if (!System.IO.File.Exists(excelPath))
            {
                return null;
            }

            try
            {
                //strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelPath + ";" + "Extended Properties=Excel 8.0;";
                strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
                conn = new OleDbConnection(strConn);

                conn.Open();

                string strExcel = "";

                OleDbDataAdapter myCommand = null;

                DataSet ds = null;

                strExcel = "select * from [" + ExceltableName + "]";

                myCommand = new OleDbDataAdapter(strExcel, strConn);

                ds = new DataSet();

                myCommand.Fill(ds, "TEMP");

                conn.Close();

                return ds;
            }
            catch
            {
                conn.Close();

                MessageBox("解析Excel出錯。可能原因有:\\n\\n1:選擇文件類型非Excel格式文件,正確格式為:XXXX.xls!\\n\\n2:該文件被其他進程佔用!\\n\\n3:该文件不存在!");

                return null;
            }
        }

  • 相关阅读:
    需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动
    47、软件需求工程的活动可以划分为5个独立的阶段:需求获取、需求建模、形成需求规格、需求验证和需求管理,需求建模是()
    JavaScript alert()函数
    系统讲解一下,Dao,Entity,Servlet,Action各自有什么东西-Java/Web开发
    用Eclipse 开发Dynamic Web Project应用程序
    Connection conn = DriverManager.getConnection("jdbc:odbc:bbs");
    linux 常用快捷命令
    Docker 命令大全
    小白入门之十七:yum源配置并使用其安装软件包
    Linux从一般用户切换到root用户
  • 原文地址:https://www.cnblogs.com/panshengqiang/p/2796684.html
Copyright © 2011-2022 走看看