Excel导入到数据库,出现的一个很烦人的问题
我在做导入的时候,调试运行没有问题,但是直接打开一个IE浏览器,输入我程序的地址来运行,做导入的时候就要出错,提示Microsoft Jet数据库引擎打不开文件‘C:\Documents and Settings\zhongling\桌面\Company.xls’.它已经被别的用户以独占式打开,或没有查看数据的权限
奇怪的是为什么我调试运行都能导入成功的。excel文件是放在程序里的一个文件夹中的。直接下载下来输入内容然后批量导入数据的。
进程中也没有打开Excel,也没有打开这个文件。代码是这样写的:
filepath :excel文件的路径。
public class Leading
{
public Leading()
{
}
//从excel中得到数据存入表中:
public static DataTable ImportFromRxcel(string filepath, string sheetname)
{
DataTable dt = new DataTable("BT");
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"))
{
conn.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter("Select * From[" + sheetname + "]", conn))
{
da.Fill(dt);
}
}
return dt;
}
//获得sheetname(excel工作单)
public static ArrayList ExcelSheetName(string filepath)
{
ArrayList al = new ArrayList();
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"))
{
conn.Open();
DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow dr in sheetNames.Rows)
{
al.Add(dr[2]);
}
return al;
}
}
}