У меня проблема, которая очень похожа на уже опубликованный вопрос здесь , но не решена. Эта проблема заключается в том, что когда мое приложение читает из файла Excel (может случиться и с CSV) с помощью oledb , а файл уже открыт в 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, у класса даже нет взаимодействия)