|
Вывод в шаблон excel c сохранением формул | ☑ | ||
---|---|---|---|---|
0
EarthsSoul
07.06.12
✎
13:24
|
Здравствуйте
В общем я хочу печатную форму выводить в Excel, нашел строчки кода которые обычную печатную форму выведут в Excel файл а мне надо что бы в Excel файле, где могут быть формулы, что бы они там были, т. е. вместо числа суммы должна быть формула произведения цены на количество, в ячейке под суммой должна быть формула суммы. И выводятся табличные части документа, где количество строк соответственно разное, значит нужны шаблоны в Excel... Дак вот вопрос как сделать вывод в Excel по шаблону? |
|||
1
Администратор 1С
07.06.12
✎
13:30
|
Пример вывода формул:
Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(имяФайла); WS = WB.Worksheets(НомерЛиста); WS.Cells(НомерСтроки,КолонкаСумма).FormulaR1C1="=SUM(R[1]C:R["+Формат((i-ПерваяСтрока+1),"ЧГ=0")+"]C)"; |
|||
2
EarthsSoul
07.06.12
✎
13:47
|
(1) спасибо, но тогда
Вот вывожу Заказ поставщику в Excel, сколько будет строк в табличной части товары не известно, но ясно что таблица в Excel естественно нужна. Как быть? 1) Может быть можно (или даже нужно) у ячейки задавать свойства из 1с, типа грница такая то.... 2) Или можно применить как механизм в 1с, использовать одну и туже строчку в виде шаблона, но только как тогда строки рас копировать? |
|||
3
Fish
07.06.12
✎
13:56
|
(2) Например так:
Скопировать строку Excel.Rows(НомерСтроки1+":"+НомерСтроки2).Select(); Excel.Selection.Copy(); Вставить строку Excel.Rows(НомерСтроки1+":"+НомерСтроки2).Select(); Excel.Selection.Insert(); |
|||
4
Undefined
07.06.12
✎
13:56
|
(2)плохо понял в чем проблема. Может подойдет вот это. В макете в 1С вставляешь формулу Excel как текст. Потом в файле эксель обходишь строки и если он находищь текст формулы (по ключевым словам например) выполняешь команду из (1), где вместо формулы указываешь текст из этой ячейки. Я так вывод прайса в ексель с поддержкой формул делал
|
|||
5
EarthsSoul
07.06.12
✎
14:03
|
Думаю (1) и (3) разрешат задачу, приступлю к реализации)), вернусь как только буду в тупике или решу задачу)), всем спасибо ))
|
|||
6
Ant1773
07.06.12
✎
14:41
|
(2)Я делал подобное на делфи:
BufferGrid := VarArrayCreate([0,(QueryRpt.RecordCount),0,12],varVariant); ... Sheet.Rows['9'].Select; //выделяем "идеальную строку" Exl.Selection.Copy; //копируем строку Sheet.Rows['9:'+IntToStr(QueryRpt.RecordCount+6)].Select; //выделяем необходимый диапазон Exl.Selection.Insert; //добавляем строки Sheet.Range['A8',sheet.Cells.Item[QueryRpt.RecordCount+7,12]].Value2:=BufferGrid; //заполняем данными |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |