我遇到的问题与here已经发布但尚未解决的问题非常相似。问题是,当我的应用程序使用oledb 从excel文件中读取(也可能与CSV一起发生)并且文件已经在Excel中打开(不是通过应用程序打开时,用户只是单独打开了文件) )新的Excel将以只读模式打开文件。如果根本没有打开文件,则不会出现Excel。打开连接时发生-conn.Open()
这里是一种参考方法:
public static DataTable GetDataTableFromExcelSheet(string ExcelFilePath, string SheetName)
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFilePath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
string query = "SELECT * from [" + SheetName + "$]";
System.Data.DataTable dt = new System.Data.DataTable();
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, conn))
{
dataAdapter.Fill(dt);
}
conn.Close();
}
return dt;
}
有没有一种方法可以阻止Excel打开?或至少不使其可见? (该应用程序不会尝试在任何地方运行Excel应用程序,该类甚至没有互操作性)