在OLEDBCommand查询上打开Excel工作表

时间:2019-03-15 03:12:52

标签: c# excel oledb

我遇到的问题与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应用程序,该类甚至没有互操作性)

0 个答案:

没有答案