8.х Сохранение данных в Эксель.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем barsuchechechek, 7 дек 2010.

  1. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Сохраняю печатную форму в Эксель, затем открываю ее и редактирую.
    Код:
    ОбъектExcel=Новый COMОбъект("Excel.Application");
    ФайлExcel = ОбъектExcel.Workbooks.Open(ФайлВФорматеXLS);
    // редактирую
    ФайлExcel.SaveAs(ФайлВФорматеXLS);
    ОбъектExcel.Application.Quit();
    
    
    Выдает: Файл такой-то уже существует в данном месте. Заменить? Как отключить этот вопрос? Чтобы сохраняло по-умолчанию без вопросов?
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Тут почитайте (правда Delphi, но думаю - разберетесь).
  3. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Спасибо. Помогло.
    Еще один вопрос.
    Сохраняю печатную форму в Эксель, затем открываю ее и редактирую.
    Устанавливаю формулы в ячейках.
    Ячейка.FormulaR1C1 = "=RC[-2]*RC[-1]";
    Все нормально отрабатывает.
    Теперь мне надо подсчитать сумму по этим ячейкам. Не могу придумать какая формула будет. Ведь количество строк неизвестно.
  4. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Почему количество строк неизвестно? Вы же можете получить адрес последней ячейки вывода? Вот на следующей и напишите формулу.
  5. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Как? Вообще не понимать)
  6. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Если у вас запрос, то вы можете получить количество в выборке. Т.е. берете адрес первой ячейки плюс количество элементов в выборке, вот и получается последняя ячейка. Если количества элементов нет, то есть у листа экселя свойство UsedRange, которое представляет все ячейки, содержащие значение на данный момент. И к примеру через ActiveSheet.UsedRange.Rows.Count мы получим количество используемых строк. Но тут есть такой момент, например если у вас значения будут в 1, 3 и 5 строке, то ActiveSheet.UsedRange.Rows.Count будет равно 5. Вобщем как-то так. Если я вдруг что-то не правильно понял, то извиняюсь.
  7. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Я тоже что-то не понял) наверное плохо объясняю. В цикле перебираю строки файла эксель и в столбец 3 проставляю формулу = столбец1 *столбец2.
    В конце в итоговой строке - я определяю без проблем эту ячейку, надо проставить формулу - сумму всех столбцов 3 до этой строки. Как это сделать? Или же как вариант сумму всех произведений столбца1 на столбец 2.
  8. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    В чем проблема то? Также пишешь формулу в ячейке и все
  9. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Вот попробовал написать, все норм получается
    Код:
     
    ЛистВыгрузки.Cells(10, 3).FormulaR1C1 = "=SUM(R[-9]C:R[-1]C)";
    
    
  10. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    сделал до этого немного по другому, но тоже работает, спасибо большое за помощь.

Поделиться этой страницей