|   |   | 
| 
 | 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("@", ""); | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |