![]() |
|
v7: Автопересчет формул | ☑ | ||
---|---|---|---|---|
0
Генетический мусор
09.10.12
✎
09:23
|
Работаю с компонентой SpreadSheet.dll, смысл в "нормальном" виде, с группировками и прочее из 7.7. сохранить файл в эксель, в одной из строк таблицы формула - к примеру такая =37,6/100*(100-E16), выгружает в эксель не формулой, а строкой, как победить, причем я по этой ячейке в сформированном файле просто щелкаю и получается формула. В SpreadSheet.dll есть метод АвтопересчетФормул(), но почему то он у меня не работает, разработчику писал, может кто сталкивался. Заранее благодарю
|
|||
1
dk
09.10.12
✎
09:33
|
юзай Excel по OLE )
|
|||
2
Генетический мусор
09.10.12
✎
09:37
|
да уже столько написано((((
|
|||
3
АЛьФ
09.10.12
✎
09:39
|
Формулу в Эксель не выгрузить. Об этом подробно написано на форуме разработчика.
|
|||
4
Генетический мусор
09.10.12
✎
10:53
|
3) никакими средствами? или через оле можно, погуглил, тоже чего-то не очень нашел
|
|||
5
dk
09.10.12
✎
11:02
|
по OLE можно почти все
|
|||
6
Генетический мусор
09.10.12
✎
13:37
|
ну туплю(((
Для Сч = 16 По КоличествоСтрок Цикл НомерСтроки = Формат(Сч, "ЧГ=0"); НомерКолонки = 5; //Если формула > 0 Тогда //Иначе // Формула = Число(Excel.Cells(Сч,5).Value); //КонецЕсли; Выборка = Excel.Cells(Сч,4).Value; Если Число(Выборка) > 0 Тогда //Excel.Cells(Сч,5).Formula = " = Выборка / 100"// * 100-формула"; //Excel.Cells(16,5).Value); // проставим формулу для пересчета количества в количество упаковок Попытка Лист.Cells(НомерСтроки,НомерКолонки).Formula = "=RC[-НомерКолонки]/100";///ну хоть такую =9,35/100*(100-E16) Исключение КонецПопытки; КонецЕсли; КонецЦикла; Excel.Visible = 0; Книга.Save(); Книга.Close(); |
|||
7
Тьма
09.10.12
✎
13:41
|
Лист.Cells(Т2.НомерСтроки+3,Т1.НомерСтроки*3+3).FormulaR1C1 = "=RC[-2]*RC[-1]";
|
|||
8
Генетический мусор
10.10.12
✎
07:39
|
спасибо други, засунул формулу, как мне теперь ее отформатировать программно что там формат этой ячейки денежный и там два знака после запятой:). Заранее благодарю
|
|||
9
dk
10.10.12
✎
08:09
|
Лист.Cells(Т2.НомерСтроки+3,Т1.НомерСтроки*3+3).NumberFormat = "0.00";
научись пользоваться макросами |
|||
10
Тьма
10.10.12
✎
08:12
|
Лист.Cells(Т2.НомерСтроки+3,3).NumberFormat="0"+Экс.decimalseparator+"00";
кроме того, эксель любит воспринимать числа как текст и не проводит над ними затем операции сложения-вычитания. Типа "число сохранено как текст". Недавно боролся с этим, нашел такой не очень красивый, но работающий метод: Лист.Cells(Т2.НомерСтроки+3,Т1.НомерСтроки*3+2).Value="@"+сокрлп(формат(Цена,"Ч012.2,")); ... Лист.Cells.Replace("@", ""); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |