Вопрос
Какие имена столбцов нельзя использовать при создании электронной таблицы Excel с помощью ADO.
У меня есть оператор, который создает страницу в электронной таблице:
CREATE TABLE [TableName] (Column string, Column2 string);
Я обнаружил, что используя имя столбца Date
или Container
выдаст ошибку при выполнении оператора.
Есть ли у кого-нибудь полный (или частичный) список слов, которые нельзя использовать в качестве названий столбцов?Это предназначено для использования в среде, управляемой пользователем, и было бы лучше «исправить» столбцы, чем привести к сбою.
Мой обходной путь заключается в замене любых вхождений Date
или Container
с Date_
и Container_
соответственно.
Решение
Вы можете использовать скобки для любого имени поля, например:
CREATE TABLE [TableName] ([Date] string, [Container] string)
Полный пример:
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("CREATE TABLE [TableName] ([Date] string, [Container] string)", conn);
cmd.ExecuteNonQuery();
}
Другие советы
Вот зарезервированные слова для MS Query:
http://support.microsoft.com/kb/125948
Правила именования ячеек:
http://ezinearticles.com/?Rules-For-Naming-Cells-in-Microsoft-Excel&id=218607
Это больше похоже на проблему с зарезервированными словами SQL.Это хороший список