【问题标题】:Read Excel File Data From OleDbConnection从 OleDbConnection 读取 Excel 文件数据
【发布时间】:2014-05-02 13:48:06
【问题描述】:

我目前面临一个问题,我不知道如何解决它。

我将我的预编译项目上传到 IIS。这是我创建此页面的目的:

  • 用户将 excel 文件上传到服务器的文件夹中。前@"~/PlanQuantityFile/"。确实上传成功了。

面临的问题:

  • 当我的脚本尝试打开 excel 文件(用于提取数据)而不显示任何错误时,它会停止。如图所示,在第 881 行。

  • 这是我寻找的几个领域,但仍然无法解决我的问题。

可能的解决方案:

  1. 连接打开但从不关闭,所以连接用完了。 (但我确实关闭了它,并且脚本在关闭语句之前停止运行)

  2. 32 位程序调用 64 位 office。 (我对硬件领域的知识有限,不知道该怎么解决)

  3. 权限问题。需要设置 ASP.NET 帐号的权限。 (我仍在寻找 ASP.NET 帐户的对象名称)

感谢任何试图提供帮助的人。您的建议非常宝贵。

OleDbConnection oledbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + SaveLocation + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';");

OleDbConnection connExcel = oledbConn;
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;

//Get the name of Sheet
try
{
    connExcel.Open();// It stops here without showing errors.
}
catch (Exception ex)
{
    ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + ex.Message + "');", true);
}           

【问题讨论】:

    标签: c# asp.net excel


    【解决方案1】:

    以下代码返回选定文件位置源的数据表。请记住将工作表名称重命名为“Sheet1”。

    使用命名空间:使用 System.Data.OleDb;

    函数::::

        public DataTable GetExcelinDatatable(string filelocation)
        {            
            DataTable dt = new DataTable();
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filelocation + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
            OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
            con.Open();
            OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter("select * from [SHEET1$]", con);
            da.Fill(dt);
            con.Close();
    
            return dt;
        }
    

    【讨论】:

      【解决方案2】:

      你可以使用上面提到的函数来读取Excel文件,你只需传递excel文件的路径

       private List<DataTable> readExcel(string strXLS)
      {
          //DataTable dtExcel = getExcelSheetTable();
          List<DataTable> SheetsData = new List<DataTable>();
          DataTable dtExcel = new DataTable();
          DataTable SocialMediaExcel = new DataTable();
          string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strXLS + ";Extended Properties=Excel 12.0;";
          try
          {
              OleDbDataAdapter adpt = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connStr);
              adpt.Fill(dtExcel);
              SheetsData.Add(dtExcel);
      
      
          }
          catch (Exception ex)
          {
              throw ex;
          }
      
      
          return SheetsData;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-15
        • 2014-03-14
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        相关资源
        最近更新 更多