Вопрос

Какие имена столбцов нельзя использовать при создании электронной таблицы 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.Это хороший список

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top