Odin | База знаний 1С

Как обновить дату в...
 

Как обновить дату в Excel-файле из 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Процедура КнопкаВыполнитьНажатие(Кнопка)
ОбновитьДатуВФайле();
КонецПроцедуры
// Внешняя обработка "ВыгрузкаКонстант.epf"
// Формирует Excel-файл со значениями заданных констант
// Поддерживает толстый клиент (Обычное приложение)

Процедура ОбновитьДатуВФайле()

ПутьФайла = "C:UsersАдминистраторDesktopТабКонстанты.xlsx";

// Проверка существования файла
//Если Не Новый Файл(ПутьФайла).Существует() Тогда
// Сообщить("Файл не найден: " + ПутьФайла);
// Возврат;
//КонецЕсли;

Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = Истина;
Excel.DisplayAlerts = Ложь;

Книга = Excel.Workbooks.Open(ПутьФайла);
Лист = Книга.Sheets(1);

// Обновляем дату в ячейке C8 (строка 8, столбец 3)
Лист.Cells(8, 3).Value = ТекущаяДата();
Лист.Cells(8, 3).NumberFormat = "dd.mm.yyyy";

Книга.Save();
Книга.Close(); // Закрываем с сохранением изменений
Excel.Quit();

Сообщить("Дата успешно обновлена в файле: " + ПутьФайла);

Исключение
Сообщить("Ошибка: " + ОписаниеОшибки());
Попытка
Если Книга Неопределено Тогда Книга.Close(Ложь); КонецЕсли;
Если Excel Неопределено Тогда Excel.Quit(); КонецЕсли;
Исключение
КонецПопытки;
КонецПопытки;

Книга = Неопределено;
Excel = Неопределено;

КонецПроцедуры



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, Расул!

Чтобы обновить дату в Excel-файле с помощью процедуры, вы можете использовать следующий код, который вы уже предоставили. Он открывает указанный Excel-файл, обновляет значение в определенной ячейке и сохраняет изменения. Вот пример процедуры, которая выполняет эту задачу:

1C
Процедура ОбновитьДатуВФайле()
    ПутьФайла = "C:UsersАдминистраторDesktopТабКонстанты.xlsx";

    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.Visible = Истина; // Установите в Ложь, если не хотите показывать Excel
        Excel.DisplayAlerts = Ложь;

        Книга = Excel.Workbooks.Open(ПутьФайла);
        Лист = Книга.Sheets(1); // Открываем первый лист

        // Обновляем дату в ячейке C8 (строка 8, столбец 3)
        Лист.Cells(8, 3).Value = ТекущаяДата();
        Лист.Cells(8, 3).NumberFormat = "dd.mm.yyyy"; // Устанавливаем формат даты

        Книга.Save(); // Сохраняем изменения
        Книга.Close(); // Закрываем книгу
        Excel.Quit(); // Закрываем Excel

        Сообщить("Дата успешно обновлена в файле: " + ПутьФайла);

    Исключение
        Сообщить("Ошибка: " + ОписаниеОшибки());
        Попытка
            Если Книга  Неопределено Тогда Книга.Close(Ложь); КонецЕсли;
            Если Excel  Неопределено Тогда Excel.Quit(); КонецЕсли;
        Исключение
        КонецПопытки;
    КонецПопытки;

    Книга = Неопределено;
    Excel = Неопределено;
КонецПроцедуры

### Объяснение кода:
1. **Создание COM-объекта**: Создается объект Excel для работы с приложением Excel.
2. **Открытие файла**: Файл открывается по указанному пути.
3. **Обновление ячейки**: В ячейку C8 записывается текущая дата с заданным форматом.
4. **Сохранение и закрытие**: Изменения сохраняются, книга и приложение Excel закрываются.
5. **Обработка ошибок**: В случае ошибки выводится сообщение, и приложение Excel закрывается, если оно было открыто.

Этот код можно вызывать из другой процедуры, например, по нажатию кнопки, как в вашем примере.

Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!



   
ОтветитьЦитата