|
Как прописать формулу в записанном документе Excel используя ADODB.Connection | ☑ | ||
---|---|---|---|---|
0
Natalika
15.10.13
✎
16:12
|
Я сохраняю из 1С в Эксель прайс номенклатуры, а потом мне надо с помощью COMОбъекта "ADODB.Connection" прописать в последней колонке формулу. С помощью объекта "Excel.Application" написала, работает, но Excel не на всех машинах установлен.
Вот мой код: СтрокаСоединения ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " +ИмяФайлаЭксель +" ; Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""; Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = СтрокаСоединения; Попытка Connection.Open(); Исключение Сообщить ("Проблемы с подключением к Excel" ); Возврат; КонецПопытки; Catalog =Новый COMОбъект("ADOX.Catalog"); Catalog.ActiveConnection = Connection; ИмяТаблицы=""; Для каждого Лист ИЗ Catalog.Tables Цикл ИмяТаблицы=Лист.Name; Прервать; КонецЦикла; RS = Новый COMОбъект("ADODB.Recordset"); ТекстЗапроса = "SELECT | Лист.* |FROM | ["+ИмяТаблицы+"] as Лист"; попытка RS.Open(ТекстЗапроса, Connection); исключение Сообщить ("Проблемы с выполнением запроса"); Возврат; КонецПопытки; Command =Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = Connection; Command.CommandType = 1; Колонка = "J"; НомерСтроки=0; Пока RS.EOF() = 0 Цикл НомерСтроки=НомерСтроки+1; ТекСтрока = Формат(НомерСтроки, "ЧГ=0"); //Excel.Range(Колонка + ТекСтрока).Formula = "=if(D"+ТекСтрока+"*E"+ТекСтрока+"=0,"""",D"+ТекСтрока+"*E"+ТекСтрока+")"; Если НомерСтроки>17 Тогда ФормулаСтроки="=if(D"+ТекСтрока+"*E"+ТекСтрока+"=0,"""",D"+ТекСтрока+"*E"+ТекСтрока+")"; Command.CommandText = "INSERT INTO [" + ИмяТаблицы + "] VALUES (@ФормулаСтр)"; Command.Parameters("@ФормулаСтр").Value = "Строка формулы"; Попытка Command.Execute(); Исключение Сообщить("Не удалось записать строку " + ТекСтрока); КонецПопытки; КонецЕсли; RS.MoveNext(); КонецЦикла; RS.Close(); Connection.Close(); |
|||
1
Волшебник
модератор
15.10.13
✎
16:15
|
установить Excel на всех машинах
|
|||
2
shuhard
15.10.13
✎
16:17
|
(0) для этого предназначен не ADODB, а ADOX
|
|||
3
Natalika
15.10.13
✎
16:20
|
(2) Я оба объекта использовала. Но я не знаю, как правильно с ними работать. Подскажите пожалуйста.
|
|||
4
shuhard
15.10.13
✎
20:25
|
(3) MSDN в помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |