[ExcelEditor] Чтение/запись файла Excel напрямую из 1С без Excel (формат 97/2003)
Разработка - Разработка внешних компонент
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
| Наименование | Скачано | Бесплатно |
|---|---|---|
|
Версия 1.0.0.2
.1235467249 62,47Kb
1308
|
1308 | Скачать бесплатно |
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В продолжение развития проекта чтения из Excel "напрямую" //infostart.ru/projects/621/
*** Для работы компоненты потребуется установленный Microsoft .NET Framework 2.0, который можно скачать отсюда.
Чтобы зарегистрировать компоненту в Windows - запустить reg.bat
или использовать совместно с хранилищем внешних компонент.
ПОДКЛЮЧЕНИЕ КОМПОНЕНТЫ В 1С:
ИмяВК="AddIn.ExcelEditor";
Попытка
ПодключитьВнешнююКомпоненту(ИмяВК);
Исключение
Предупреждение("Не удалось подключить компоненту " + ИмяВК);
КонецПопытки;
Попытка
Экзель = Новый(ИмяВК);
Исключение
Предупреждение("Ошибка создания объекта внешней компоненты: " + ИмяВК);
КонецПопытки;
*** Методы:
//ОТКРЫТИЕ ФАЙЛА:
Экзель.ОткрытьФайл(Файл); // возвращает значение типа булево;
//ПОЛУЧЕНИЕ КОЛИЧЕСТВА ЛИСТОВ
КоличествоЛистов = Экзель.ПолучитьКоличествоЛистов();
//ОТКРЫТИЕ ЛИСТА
Экзель.ОткрытьЛист(НомерЛиста); // возвращает значение типа булево;
//ПОЛУЧЕНИЕ КОЛИЧЕСТВА КОЛОНОК
КоличествоКолонок = Экзель.ПолучитьКоличествоКолонок();
//ПОЛУЧЕНИЕ КОЛИЧЕСТВА СТРОК
КоличествоСтрок = Экзель.ПолучитьКоличествоСтрок();
//ПОЛУЧЕНИЕ ЗНАЧЕНИЯ ЯЧЕЙКИ
ЗначениеЯчейки = Экзель.ПолучитьЗначениеЯчейки(НомерСтроки, НомерКолонки);
//ПОЛУЧЕНИЕ ЗНАЧЕНИЯ ЯЧЕЙКИ В ФОРМАТЕ ДАТА
ЗначениеЯчейки = Экзель.ПолучитьЗначениеЯчейкиДата(НомерСтроки, НомерКолонки);
//ОЧИСТКА ПАМЯТИ
Экзель.Выполнено();
//ДОБАВИТЬ ЛИСТ
Экзель.ДобавитьЛист(ИмяЛиста);
//РЕДАКТИРОВАТЬ ЯЧЕЙКУ
Экзель.РедактироватьЗначениеЯчейки(Строка, Колонка, Значение);
//РЕДАКТИРОВАТЬ ЯЧЕЙКУ С ФОРМАТИРОВАНИЕМ
Экзель.РедактироватьЗначениеЯчейкиСФорматированием(Строка, Колонка, Значение, СтрокаФорматирования);
//РЕДАКТИРОВАТЬ ШИРИНУ КОЛОНКИ
Экзель.РедактироватьШиринуКолонки(СКолонки, ПоКолонку, Ширина);
//ЗАПИСАТЬ
Экзель.СохранитьФайл(ПутьКФайлу);
//ПОИСК ЯЧЕЙКИ:
Экзель.НайтиЯчейку(ЗначениеЯчейки, НомерНачальнойСтроки);
//возвращает пустую строку, если не найдено или номер строки и номер колонки через запятую, если найдена. Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка внешних компонент Системный администратор Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 Россия Платные (руб)
Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.
7320 руб.
19.04.2023 7316 1 0
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 1C77 Платные (руб)
Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async можно наладить обмен данными между удаленными информационными базами по протоколам HTTP, HTTPS и WebSocket. С помощью компоненты HttpSrv7 используя протокол WebSocket можно создавать и поддерживать работу нескольких чатов. С помощью компоненты HTTP_Async можно асинхронно отправлять HTTP-запросы к сайтам, веб-сервисам (в т.ч. к HTTPSrv7) и обрабатывать ответы по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи в формате Base64 и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.
6100 руб.
27.05.2022 13638 2 20
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 Платные (руб)
Компонента для выбора значения из больших списков значений.
5084 руб.
02.12.2021 8341 3 19
Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь 1С:Предприятие 7.7 1C77 Россия Бухгалтерский учет Платные (руб)
Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.
5999 руб.
29.07.2021 28853 23 27
Разработка внешних компонент Защита ПО и шифрование Обмен с ГосИС Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7, получение ЭЦП в формате BASE64 для работы с API ГИС "Честный знак"
2 стартмани
08.06.2020 12019 33 mdbruyfn 10
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 Абонемент ($m)
Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.
1 стартмани
14.11.2019 24669 138 mdbruyfn 110
Загрузка и выгрузка в Excel Перенос данных 1C Разработчик Пользователь 1С:Предприятие 7.7 1С:Предприятие 8 1C:Бухгалтерия 1C77 1С:ERP Управление предприятием 2 Абонемент ($m)
Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!
1 стартмани
16.08.2019 22288 22 ksnik 12
Разработка внешних компонент Загрузка и выгрузка в Excel Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Внешняя компонента 1С 7.7. для сохранения таблиц в формате Excel 2007.
1 стартмани
21.03.2019 35403 88 MadDAD 347
Очень хотелось бы, чтобы Экзель мог читать + редактировать и сохранять. Набрал:
Рез = Экзель.ОткрытьФайл("c:\test.xls");
Рез = Экзель.ОткрытьЛист(1);
Экзель.РедактироватьЗначениеЯчейки(0, 1, 777);
Экзель.СохранитьФайл("c:\test.xls");
ЗапуститьПриложение("c:\test.xls");
Выдает
ExcelEditor : Значение не может быть неопределенным.
Имя параметра: key.
Подскажи плииз, что не так
З.Ы. Клиент присылает прайс.xls, читаю Экзелом, а хотелось бы подправить этот же и сохранить
ExcelEditor : Image Type Not supported.
Как установка и регистрация повлияют на работу 1с в клиент-серверном варианте? Какие ошибки или сбои в работе возможны?
Функция глНайтиВЭксель(range, what, precision = 1, column = 0) Экспорт
//поиск в ole-excel
//
//возвращает число - номер строки в excel, содержащей найденную ячейку
//или 0, если ничего не найдено
//
//range - (ole-объект), область в excel, по которой производится поиск
//what - (число, строка, или дата), что ищем
//precision - 0-первое вхождение, 1-равенство what и значения ячейки
//column - отсюда можно считать номер колонки, с найденной ячейкой
//
Попытка
cell=range.find(what)
Исключение
Возврат 0;
КонецПопытки;
Если (what = cell.value)ИЛИ(Число(what) = Число(cell.value))ИЛИ(Строка(what) = Строка(cell.value)) Тогда
Возврат cell.row
КонецЕсли;;
Если (ПустоеЗначение(cell) = 0) Тогда
Если (precision = 0) Тогда
column = cell.column;
Возврат cell.row;
КонецЕсли;
fstAddress = cell.address;
Пока (ПустоеЗначение(cell) = 0) Цикл
cell = range.findNext(cell);
Если (cell.address = fstAddress) Тогда
Возврат(0);
Прервать;
КонецЕсли;
Если (what = cell.value)ИЛИ(Число(what) = Число(cell.value))ИЛИ(Строка(what) = Строка(cell.value)) Тогда
column=cell.column;
Возврат cell.row;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат 0;
КонецФункции
ТаблицаЗначений.НайтиЗначение(<Знач>,<Строка>,<Колонка>)
Возвращает число: 0 - значение не найдено; 1 - значение найдено
<Строка> - идентификатор переменной, куда возвращается номер найденной строки. Если при вызове метода передать в этот параметр номер строки, то поиск будет осуществляться только по указанной строке.
аналогично <Колонка>
Нет смысла искать по всему листу, а потом анализировать то или не то нашлось
Ошибка при выполнении метода объекта компоненты <Неизвестная компонента>
Это как-то лечится?
Читает/пишет напрямую файлы Excel. Работает и в 7.7 и в 8.х. Сохраняет форматирование. Конвертирует из XLS в MXL и обратно. Ну и еще кое-что (на сайте все написано)... Для скачивания рейтинг не требует. :)
Программист поставщика переделал выгрузку данных из 1с в документ Excel.
1)Записывается документ Excel без листов.
2)Создается новый документ Excel с листами.
3)Данные из 1го документа записываются новый.
4)Новый документ пересылают нам.
ExcelEditor : Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index.
Файл сформирован из 1С через OpenOffice.org 3.1
Куда можно его выслать?
"Экзель.РедактироватьЗначениеЯчейкиСФорматированием(Строка, Колонка, Значение, > СтрокаФорматирования);"
см. здесь -
От себя, получилось только изменить цвет шрифта (СтрокаФорматирования="[magenta]@"), дальше не разобрался нет времени.
Еще один момент в старых версиях Excel есть функция "GetFormat(cell)" - которая должна показывать строку форматирования для ячейки, кое-что по этому поводу здесь: .
---------------------------------------------------------------------------------
1С v8.1
Server 2003 SP2. Обновлялся с MS автоматом. Стоял Net 2,3,3.1
При регистрации reg.bat ругался на отсутствие одной из компонент (по памяти пишу).
Обрабока 1С, использующая ExcelEditor писала
Ошибка создания внешней компоненты AddIn.ExcelEditor
Снес все Framework начиная c последнего, установил .Net Framework 2.0 по ссылке в readme.txt,
отключил Firwall/antivirus и зарегил нормально даже без перегрузки.
Работает :D
Экзель = СоздатьОбъект("AddIn.ExcelEditor");
генерируется ошибка: Ошибка при создании объекта из компоненты <Неизвестная компонента> (отсутствует CLSID)
При подключении компоненты ошибки не возникает. Подскажите как быть?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 18726
Создание 08.01.09 02:39
Обновление 25.05.09 00:00
Просмотры 62616
Загрузки 1308
Рейтинг
114
Комментарии 92
Код открыт Не указано
Рубрики Загрузка и выгрузка в Excel Разработка внешних компонент
Кому Разработчик
Тип файла Компонента, плагин (dll, vbs,..)
Платформа
1С:Предприятие 7.7
,
1С:Предприятие 8
Конфигурация
1C:Бухгалтерия
,
1C77
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)