Выгружаем в EXCEL с помощью ADO (часть 2)
Наверное, уже многие знают, что с помощью технологии ADO можно быстро читать большие объемы информации из книг excel. Но ведь с помощью данной технологии можно также легко создавать и заполнять файлы excel. Данная статья является продолжением статьи "Выгружаем в EXCEL с помощью ADO"
- Описание
- Подробнее
Описание
Данная статья является логическим продолжением статьи Выгружаем в EXCEL с помощью ADO, в ней пойдёт речь о типизации выгружаемых данных, а также о втором способе создания файла эксель (без использования объекта ADOX.Catalog).
Итак, сначала типизация колонок в создаваемом экселевском файле (для примера из первой статьи):
……
Table = Новый COMОбъект(«ADOX.Table»);
Table.Name = «Table»;
// Допустимые типы
// adDouble = 5 Значение с плавающей точкой двойной точности
// adDAte = 7 Дата
// adCurrency = 6 Денежная сумма
// adBoolean = 11 Булево
// adVarWChar = 202 Символьная строка Unicode, заканчивающаяся NULL
// adLongVarWChar = 203 Длинное строковое значение
Column = Новый COMОбъект(«ADOX.Column»);
Column.Name = «ЧисловойСтолбец»;
Column.Type = 5;
Table.Columns.Append(Column);
Column = Новый COMОбъект(«ADOX.Column»);
Column.Name = «ДатаСтолбец»;
Column.Type = 7;
Table.Columns.Append(Column);
Column = Новый COMОбъект(«ADOX.Column»);
Column.Name = «СтроковыйСтолбец»;
Column.Type = 202;
Table.Columns.Append(Column);
Column = Неопределено;
Catalog.Tables.Append(Table);
Ну а теперь второй способ создания файла эксель(без использования объекта ADOX.Catalog):
СтрокаПодключения = «
|Provider=Microsoft.Jet.OLEDB.4.0;
|Data Source=»+ИмяФайлаЭксельНовый+«;
|Extended Properties=»»Excel 8.0;HDR=YES»»;»;
Connection = Новый COMОбъект(«ADODB.Connection»);
Connection.ConnectionString = СтрокаПодключения;
Connection.Open();
Command = Новый COMОбъект(«ADODB.Command»);
Command.ActiveConnection = Connection;
Command.CommandText = «CREATE TABLE [МояТаблица] (Символьный char(255), Дата date, Целый int, Дробный float)»;
Command.Execute();
Command.CommandText = «INSERT INTO [МояТаблица] (Символьный, Дата, Целый, Дробный) values (‘АБВГДЕЁ’, ’12/4/1955′, ‘1234567’, ‘12345,6789’)»;
Command.Execute();
// А вот так можно удалить все данные на листе, при этом сам лист останется
//Command.CommandText = «DROP TABLE [МояТаблица]»;
//Command.Execute();
Command = Неопределено;
Connection.Close();
Единственное чему я не нашел пока применения, так это оператору ALTER, ни в какой форме он у меня не заработал… а по документации с сайта microsoft должен …
Вроде бы ничего не забыл и нигде не ошибся 🙂 Вот такая небольшая и лаконичная статья получилась …
P.S. И всё таки забыл … 🙂 Записи таблицы можно изменять следующим образом(вдруг кому понадобится):
Command.CommandText = «UPDATE [МояТаблица] SET Символы=’йцукен’ WHERE Целое=12345»;
Command.Execute();
Мне НЕ УДАЛОСЬ :
1). Удалять записи. (DELETE FROM [МояТаблица] WHERE Символы=’АБВГДЕЁ’)
2). Изменять структуру таблицы путём добавления и удаления столбцов, а так же изменения их типа. (Операторы: ALTER TABLE [МояТаблица] DROP COLUMN Дата, ALTER TABLE [МояТаблица] ADD НоваяКолонка data)
ОГРОМНАЯ просьба если кому-то удастся выполнить данные операции (или другие НЕ ОПИСАННЫЕ в данных статьях) сообщите мне. Заранее благодарен.
Источник: http://www.obrabotki.com/1s-excel-ado-2/

