从OleDbConnection读取Excel文件数据
本文关键字:文件 数据 Excel 读取 OleDbConnection | 更新日期: 2023-09-27 18:01:09
我目前正面临一个不知道如何解决的问题。
我将预编译的项目上传到IIS。这是我创建这个页面的目的:
- 用户将excel文件上传到服务器中的文件夹中。例如CCD_ 1。它确实上传成功
面临的问题:
-
当我的脚本试图打开excel文件(用于提取数据(而没有显示任何错误时,它就会停止。在第881行,如图所示。
-
这是我一直在寻找的几个领域,但它仍然无法解决我的问题。
可能的解决方案:
-
连接打开但从未关闭,因此连接已用完。(但我确实关闭了它,脚本在关闭语句之前停止运行(
-
32位程序调用64位办公室。(我对硬件领域的知识有限,不知道该怎么做才能在这里进行故障排除(
-
权限问题。需要设置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);
}
以下代码为选定的文件位置源返回一个数据表。请记住将图纸名称重命名为"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;
}