Кто-нибудь успешно использовал оператор CREATE TABLE
для соединения ACE OLEDB с книгой Excel 2007, в которой в таблице указан дефис?На данный момент у меня есть что-то вроде
using(OleDbConnection c = new OleDbConnection())
{
c.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"book.xlsx\";Extended Properties=\"Excel 12.0 Xml;HDR=YES\";";
c.Open();
using(OleDbCommand cmd = c.CreateCommand())
{
cmd.CommandText = "CREATE TABLE [EN-GB] ([Brand] TEXT,[Text] TEXT, [SortOrder] TEXT, [Image] TEXT);";
cmd.ExecuteNonQuery();
}
}
Имя таблицы является локалью и поэтому требует дефиса (мне нужна эта причина, потому что выходная рабочая книга импортируется в экземпляр SQL Server и таблицудолжен соответствовать схеме этой базы данных).Использование приведенного выше кода приводит к названию листа «EN_GB».Другие попытки использования различных кавычек или обратных тиков приводят либо к тому же, либо к книге, которую Excel восстанавливает при открытии.
Я понимаю, что могу открыть книгу позже и переименовать имя листа, но я надеялся, чточто-то, что я мог бы изменить в операторе SQL.