Создание листа Excel с ADO.NET (OleDb) -> Какие типы данных поддерживаются? - PullRequest
2 голосов
/ 20 января 2010

Я пытаюсь создать лист Excel (2003) с помощью ADO.NET (OleDb).

Мне удалось создать лист с помощью команды OleDbCommand:

var cnnString = "Provider=Microsoft.Jet.OLEDB.4.0;...";
var cnn = new OleDbConnection(cnnString);
var cmd = cnn.CreateCommand();
cnn.Open();
cmd.CommandText = "CREATE TABLE MySheet (ID char(255), Field1 char(255))";
cmd.ExecuteNonQuery();

Это работает, как ожидалось.

Вот мой вопрос: Какие типы данных (например, char (255)) поддерживаются Excel в команде CREATE TABLE? Я сделал Google, но не нашел ни документации, ни подсказок.

Спасибо за вашу помощь.

Ответы [ 2 ]

8 голосов
/ 05 февраля 2010

Excel распознает только ограниченный набор типов данных . Например:

  • Все числовые столбцы являются двойными
  • Все строковые столбцы (кроме столбцов мемо) - это 255-символьные строки Unicode

Цифры

Все версии Excel:

  • 8-байтовый двойной
  • [подпись] short [int] - используется для логических значений, а также целых чисел
  • unsigned short [int]
  • [подписано долго] int

Строка

Все версии Excel:

  • [подписано] char * - байтовые строки с нулевым символом в конце длиной до 255 символов
  • unsigned char * - длина строки байтов до 255 символов

Только для Excel 2007+:

  • unsigned short * - Unicode-строки длиной до 32 767 символов, которые могут заканчиваться нулем или иметь длину
0 голосов
/ 07 февраля 2010

Вы всегда получите лучшие результаты, если будете напрямую использовать объектную модель Excel, и вам не понадобится больше кода. См. пример для SO

или если вы хотите по-настоящему увлечься, вы можете попробовать Open XML SDK 2.0 для Microsoft Office

...