Прикрепление и извлечение различных файлов из книги Excel
Можно ли прикрепить (вложить) произвольные файлы в обычную книгу Excel?
А потом извлечь эти файлы в заданную папку, и работать с ними?
Казалось бы, Excel такого не позволяет. (а если и позволяет, то извлечь вложенные файлы без из запуска — весьма проблематично)
Но, при помощи макросов, можно реализовать что угодно (и сохранение\извлечение файлов в том числе)
Теперь прикрепить к книге Excel любой файл, а затем извлечь его в любую папку под заданным именем, можно при помощи нескольких строк кода!
В прикреплённом к статье файле находятся 2 модуля класса (AttachedFiles и AttachedFile), а также примеры их использования в виде макросов, позволяющих управлять вложениями в книге Excel.
Пример использования функционала модулей класса для сохранения в книге Excel исполняемого файла, с последующим извлечением:
Если вам требуется прикрепить к книге Excel лишь один небольшой файл (например, маленькую картинку или иконку),
воспользуйтесь возможностью сохранения файлов в виде VBA-функций
Рассмотрим доступные свойства и методы классов, используемых для работы со вложениями.
Класс AttachedFiles позволяет управлять вложенными файлами.
У класса AttachedFiles есть и некоторые свойства, доступные для чтения и изменения:
Второй модуль класса — AttachedFile — позволяет работать с конкретным вложенным файлом.
Свойства класса AttachedFiles предназначены только для чтения (хотя их изменение возможно, но нежелательно):
- Свойство filename (As String) содержит имя вложенного файла с расширением
- Свойство AttachDate (As Date) хранит дату и время добавления файла в книгу Excel
- Свойство FileSize (As Long) возвращает размер файла в байтах. Результат возвращается в виде числа, в отличии от функции FileSizeTXT, выдающей текстовое значение.
Чем открыть xls файл? Обзор самых лучших программ!
XLS – это один из первых форматов электронных таблиц, который был разработан компанией Microsoft для её программы Excel. Это расширение активно использовалось в данном табличном редакторе до версии 2003 года. В новых версиях стали появляться более продвинутые и удобные для пользователя расширения файлов, в том числе и самый распространённый сейчас XLSX.
Варианты открытия
Естественно, что документы данного формата можно открыть с помощью приложения Microsoft Excel, для которого изначально представленные таблицы и были созданы. При этом, в отличие от XLSX, объекты с расширением XLS без дополнительных патчей открывают даже старые программы Excel. Прежде всего, рассмотрим, как это совершить для Excel 2010 и более поздних версий.
-
Производим запуск программы и передвигаемся ко вкладке «Файл».
Кроме того, если у вас на компьютере установлен пакет Microsoft Office и вы не вводили изменения в список программ по умолчанию для открытия типов файлов, то запустить книгу XLS в Excel можно просто произведя двойной щелчок по наименованию соответствующего документа в Проводнике Windows или в другом файловом менеджере.
Чем открыть файл формата XLS?
Казалось бы, Excel такого не позволяет. (а если и позволяет, то извлечь вложенные файлы без из запуска — весьма проблематично)
Но, при помощи макросов, можно реализовать что угодно (и сохранение\извлечение файлов в том числе)
Отправка писем из 1С
ДиалогВыбораФайла нельзя писать на сервре, а на клиенте нельзя обращаться к справочнику
Я, к сожалению, на данный момент работаю только с обычными формами, там все выполняется на клиенте и они директивы &НаСервере и &НаКлиенте не воспринимают…
А как загрузить в одну ТЧ строки из нескольких книг xls? Есть идеи?
Есть конечно! 🙂
Но боюсь, что задержался с ответом))
А в целом, в диалоге выбора файла изменяем доступность Множественного выбора
ВыборФайла.МножественныйВыбор = Истина;
Убираем проверку выбора файла:
//Проверим, выбрали ли мы файл, с помощью проверки заполненности пути до файла
Если ПустаяСтрока(ВыборФайла.ПолноеИмяФайла) Тогда
Сообщить(«Файл не выбран»);
//Если мы файл не выбрали, то процедура прерывается, так как продолжать ее нет смысла.
Возврат;
Иначе
Сообщить(«Вы выбрали файл — «+ВыборФайла.ПолноеИмяФайла);
КонецЕсли;
И берем в цикл наше заполнение:
Для Каждого стр Из ВыборФайла.ВыбранныеФайлы Цикл
//Создаем переменную для хранения пути к файлу
ПутьКФайлу = стр;
…..
Закрываем цикл в конце обработки
ПриложениеExcel.Quit();
КонецЦикла;
Это так, первое что пришло на ум из работоспособного. Можно немного более оптимизированным сделать код, что бы Excel только один раз открывался программно, ну и еще по мелочи.
поэтому прикрепленные файлы не извлекаются.
И на скрытом листе бинарный код записывается.
В чем может быть причина ошибки?
Файл формата xlsx: чем открыть, описание, особенности
Уважаемый Игорь, у вас замечательный сайт и много полезной информации.
Пользуюсь вашими примерами, подскажите, а можно ли хранить файлы подобным способом в ACCESS? моих знаний в WinApi — не хватает, чтобы переписать код.
Краткое описание формата XLS
XLS – один из востребованных табличных форматов. Но книгу XLS открыть, просмотреть и отредактировать обычными текстовыми редакторами не удастся. Поэтому вопрос «чем открыть XLS?» возникает достаточно часто.
Загрузка данных в табличную часть документа из Excel — 1с-просто
Если в выделенном диапазоне первая ячейка окажется пустой — макрос остановится (остальные ячейки не проверит)
Если если хоть одно вложение найдено не будет — макрос тоже останавливается (Exit Sub)