有没有人成功地使用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 语句中更改一些内容。