从OleDbConnection读取Excel文件数据

本文关键字:文件 数据 Excel 读取 OleDbConnection | 更新日期: 2023-09-27 18:01:09

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

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

  • 用户将excel文件上传到服务器中的文件夹中。例如CCD_ 1。它确实上传成功

面临的问题:

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

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

可能的解决方案:

  1. 连接打开但从未关闭,因此连接已用完。(但我确实关闭了它,脚本在关闭语句之前停止运行(

  2. 32位程序调用64位办公室。(我对硬件领域的知识有限,不知道该怎么做才能在这里进行故障排除(

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

从OleDbConnection读取Excel文件数据

以下代码为选定的文件位置源返回一个数据表。请记住将图纸名称重命名为"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;
    }

您可以使用上述函数读取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;
}