Используем XML Spreadsheet для выгрузки в Excel

07.11.11

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Как выгрузить данные в хорошо оформленный  Excel отчет, без вызова Еxcel.Application? Попробуем решить эту задачу с помощью XML Spreadsheet, который появился еще в Office XP, но на мой взгляд находится в тени других способов взаимодействия 1С и Excel.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример обработки + xml шаблон
.rar 7,47Kb
81 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Получить XML Spreadsheet можно сохранив рабочую книгу Excel как "Таблица XML". В результате мы получаем XML документ, c которым можно работать или при помощи Excel,  или как с обычным текстовым документом. Использование второго способа и позволит нам решить поставленную задачу.

Последовательность действий такова: создаем форматированный  шаблон в Excel - заголовки, границы, именованные диапазоны, параметры страницы, сквозные строки (столбцы), и.т.д. Кроме того шаблон может содержать несколько рабочих листов. Сохраняем шаблон как "Таблица XML". В 1С пишем обрабатывающую процедуру, которая считает шаблон, как обычный текстовый файл, вставит в него соответствующие данные и сохранит результат в  рабочую книгу (*.xls).

В данном примере, для простоты мы будем выгружать справочник банков.  Создадим рабочую книгу, отформатируем ячейки, сохраним её как "Таблица XML".

Шаблон отчета

 

 

 

 

 

 

 

 

 

Затем откроем получившийся файл в текстовом редакторе (я рекомендую Notepad++ - мощный удобный и бесплатный). Вставим метки (//1 и //2), ограничивающие строку данных, для того чтобы можно было выделить этот блок при разборе текста (если открыть этот файл в Excel и затем его сохранить, эти символы исчезнут).

Шаблон строки, куда будут выводиться данные, будет выглядеть так:

Шаблон строки данных

 

 

 

 

Далее (в среде 1С) считываем XML-файл в строковую переменную, вырезаем шаблон строки и в цикле создаем набор  строк с нашими данными, заменяя метки _num, _cod и _nam на №п/п, код и наименование банка.  Затем склеиваем полученный набор строк с остальными фрагментами файла и меняем количество строк:

Количество строк

В нашем случае, заменяем ss:ExpandedRowCount="5" на ss:ExpandedRowCount="5+n-1", где n - количество строк в выборке. И наконец сохраняем  полученную строку в файл, c расширением xls.

Описанный метод применим не только к Excel, но и к другим документам  MS Office.  Относительная простота форматов xml-документов Office  позволяет создавать такие документы "на лету" прямо в коде 1С.

Шаблон создан на Excel 2003,  пример выгрузки  на платформе  8.2.14.537.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    161095    970    321    

482

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    188492    360    290    

419

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    34369    259    64    

195

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Перенос данных из БП 2 в БП 3 готовые правила конвертации данных (КД 2), сэкономьте свое время! | Выполнить переход с БП 2 на БП 3 в ситуациях, когда простым обновлением перейти не получается | Переносится вся справочная информация, документы за выбранный период, а также начальные остатки на выбранную дату (то есть можно еще и свертку базы сделать при переносе) | Есть фильтр по организациям при выгрузке данных | Перенос можно проверить перед покупкой прямо на вашем сервере! Обращайтесь за проверкой!

50600 руб.

21.05.2019    58344    81    132    

73

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко, Каспи, Авито, Аптеки+ в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP.

5490 руб.

12.08.2021    46141    585    71    

220

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62963    82    133    

81
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mtv:) 1028 30.10.11 08:30 Сейчас в теме
(0) Довольно интересная технология.
Возьму на заметку. В некоторых случаях может очень даже пригодиться.
2. DoctorRoza 30.10.11 11:44 Сейчас в теме
За работу с xml + однозначно ..
3. Zoomby 30.10.11 11:50 Сейчас в теме
Как выгрузить данные в хорошо оформленный  Excel отчет, без вызова Еxcel.Application?

Однозначно плюс. Нужно будет попробовать. Спасибо.
4. artbear 1588 30.10.11 14:26 Сейчас в теме
(0) Хочется поставить плюс, но после прочтения описания все-таки не получен ответ на главный вопрос "Как выгрузить данные в хорошо оформленный Excel отчет, без вызова Еxcel.Application" ?
получили шаблон Excel и что?
нужно скачать файла из статьи и запустить его в 1С или еще что-то?
Автор, доработай описание
ЗЫ качать не хочу, принципиально хочу понять из описания.
5. slimper 201 30.10.11 15:38 Сейчас в теме
(4) В приложении находится обработка, с открытым кодом и файл шаблона. Если есть приложение, это означает, что весь функционал в нем. Или об этом надо писать большими буквами?
13. artbear 1588 31.10.11 10:19 Сейчас в теме
slimper пишет:(4) В приложении находится обработка, с открытым кодом и файл шаблона. Если есть приложение, это означает, что весь функционал в нем. Или об этом надо писать большими буквами?

Объясняю как модератор:
Нужно писать, чтобы человек мог понять из описания, что и как делается в публикации без скачивания файла, у людей за скачивание баллы снимаются, и не хочется, чтобы они зря качали.
6. medanskiy 30.10.11 19:47 Сейчас в теме
Занимательная технология. Возьму на заметку. Автору плюс.
7. DrAku1a 1796 31.10.11 03:32 Сейчас в теме
Плюс за технологию.

Как выгрузить данные в хорошо оформленный Excel отчет

Сформировать табличный документ и сохранить его в Excel средствами 1С - не?
8. slimper 201 31.10.11 05:57 Сейчас в теме
(7) Да в приведенном примере - делаем руками шаблон, а затем подсовываем его 1С. Но никто не запрещает формировать эти шаблоны программно в среде 1С, ведь это обычные XML файлы - описание их форматов (примеры), причем не только для Excel можно найти в MSDN. Цель публикации, в том, что документы МS Office (2003 и ниже) могут быть представлены в виде XML файлов, а уже как это использовать/не использовать каждый решает сам. Кстати, начиная с Office 2007, Excel, Word и другие уже в нативном виде являются контейнерами XML файлов.
9. see1c.ru 50 31.10.11 07:17 Сейчас в теме
(8) в дополнение " Office 2007, Excel, Word и другие уже в нативном виде являются контейнерами XML файлов." , берем файл , например "Книга1.xlsx", переименовываем в "Книга1.zip". Распаковываем и смотрим XML :)
11. DrAku1a 1796 31.10.11 07:53 Сейчас в теме
(8)(9)(10) Это все понятно. Молодцы!
Но я имел в виду, что у 1С имеется свой мкеханизм записи в Excel-файл. Но вот чте-е-ение...... С этим проблемка... И тут наверное проще булет ВК обойтись (по-моему ВК в инете имеются, если что - есть Delphi и компонент TXLSReadWriteII - вооружаемся и пишем).
Естественно, как вариант - берем *.zlsx - открываем его внутренним zip-упаковщиком, разбираем файлы внутри... Но для этого много и доло MSDN изучать нужно... может тут найдутся добровольцы?

З.Ы. Кстати, в противоречие себе же вспомнил пару примеров: 1С не работает с книгой, а выгружает только один лист (может понадобиться несколько), и второй - 1С не сохраняет в *.xls поименованные области... Впрочем, еще много чего найти можно при желании - вплоть до макросов.
Но все-же с простейшим сохранением в XLS справится и сама платформа.
12. cool.vlad4 2 31.10.11 09:30 Сейчас в теме
(11) TXLSReadWriteII - кажется платный, а чтение и запись xlsx и docx средствами 1С уже делали. Смотри в профиле у Душелова. XML Spreadsheet это, конечно, хорошо, что автор обратил внимание, да вот только если потребуют результат именно в виде xls - все равно придется использовать Excel.Application.
16. slimper 201 31.10.11 11:20 Сейчас в теме
(11) XML Spreadsheet не поддерживает группировки, диаграммы, модули VBA, а в остальном это полноценная книга Excel.
17. cool.vlad4 2 31.10.11 11:42 Сейчас в теме
(16) Такие небольшие вопросики - 1. Если сохранять с расширением xls, чем чревато? 2. Как лучше делать шаблоны? Я делаю комментарии <--! Price --> и затем просто заменяю на нужный мне блок. Может есть способ лучше?
18. slimper 201 31.10.11 13:24 Сейчас в теме
(17) 1.У меня проблем не было. Может быть имел дело с не очень сложными отчетами. 2.Не могу дать конкретного совета. В "нормальных" языках я пользуюсь соответствующими пространствами имен, не прибегая к костылям.
21. cool.vlad4 2 01.11.11 10:35 Сейчас в теме
(18) В 1С в любом случае придется делать костыли. Ради такой мелочи ВК писать нет смысла. И еще вопрос - а не знаешь как выявить группировки в xml Spreadsheet (это которые outlinelevel)? макросом это очень долго...
22. slimper 201 01.11.11 12:11 Сейчас в теме
(21) Если я правильно понял о группировках, то:
Items not persisted in the XML Spreadsheet format include:
OLE objects
Drawing shapes
Charts
Microsoft® Visual Basic® for Applications (VBA) code
Groups and outlines
Custom envelope information

Может будет полезно:
Office 2003: XML Reference Schemas
24. cool.vlad4 2 01.11.11 14:03 Сейчас в теме
(22) спс, блин, так я и думал...эти некрософты не могли нормально сделать работу с группировками...
(23) Не лучше, просто другая. Это как раз те самые публикации Душелова , о которых я говорил выше - они вобще-то про форматы docx и xlsx, а здесь про способ формирования Excel файла - на основе xml. Удобно делать шаблоны.
10. slimper 201 31.10.11 07:28 Сейчас в теме
(10) Да, именно это я имел ввиду.
14. artbear 1588 31.10.11 10:21 Сейчас в теме
(0) Исправляй описание, иначе сниму публикацию до исправления
15. slimper 201 31.10.11 11:16 Сейчас в теме
(14) 1.Публикация проходит предмодерацию, на этом этапе никаких замечений не было.
2.Мне действительно непонятно, что нужно исправлять.
19. artbear 1588 31.10.11 15:11 Сейчас в теме
(15) А (7) и (8) ни о чем не говорит?
ЗЫ на будущее - премодерация также не гарантия качества, одни модераторы также могут ошибаться, но другие их могут поправить.
20. kapustinag 31.10.11 19:17 Сейчас в теме
Поставил плюс.
И лишний раз убедился, что эволюция идет по спирали.
Именно такие решения (подготовка файла-шаблона средствами родного редактора, а затем его программный разбор и наполнение данными) больше десяти лет назад пришлось делать дважды:
- работа с шаблонами .txt и .html из программы на Си и Pro*C (Oracle-исты поймут)
- работа с шаблонами .doc, .rtf и .xls из программы на PL/SQL (тоже программный язык от Oracle).
23. Трактор 1281 01.11.11 13:56 Сейчас в теме
25. alon 171 02.11.11 16:01 Сейчас в теме
Идея интересна своей простотой и неприхотливостью к использованию ВК.
Но я бы воспользовался технологией XSLT для наполнения шаблона. Все же 1С - не язык работы с текстом.
Представим, что надо заполнить заголовок, потом одну таблицу на первой странице, потом еще парочку на других. Сколько всяких "_num", "_kod" и "_nam" нам нужно будет заполнить? И как разрастется процедура анализа строк в 1С?
А вы помните наизусть, чем в xml заменяются спецсимволы типа "<", ">", "/"..?
27. slimper 201 02.11.11 16:47 Сейчас в теме
(25)(26) Согласен, можно и так. Как говорил Великий Кормчий - "Пусть расцветают сто цветов".
26. alon 171 02.11.11 16:01 Сейчас в теме
...
Другой вариант - создать простейший xml-файл с данными и преобразовать его в нужный вид с помощью xsl-шаблона. Функции работы с xml доступны в стандартной v7plus, и не придется думать о спецсимволах. А для работы с xsl есть множество инструментов визуальной разработки. Мышкой махать - не программы писать :)
28. cool.vlad4 2 02.11.11 16:54 Сейчас в теме
29. artbear 1588 02.11.11 17:07 Сейчас в теме
Полуофф. Народ, где можно почитать что-то внятное и не слишком мудреное для работы с xsl-шаблонами/схемами и формированием xml на их базе?
Чувствую, что-то интересное пропустил :)
30. alon 171 02.11.11 17:52 Сейчас в теме
(29)http://ru.wikipedia.org/wiki/Xslt :^)
Я начинал по книге Валикова Алексея "Технология XSLT" - доступно описано. В продаже нет наверное, в инете найдешь.
31. cool.vlad4 2 02.11.11 17:57 Сейчас в теме
32. vikorn 03.11.11 13:13 Сейчас в теме
Спасибо, интересно
33. svs74 9 05.11.11 08:22 Сейчас в теме
В принципе неплохой подход. спс автору за труд. Возможно пригодится. Но все же лучше работать с
Excel.Application на мой взгляд.
35. ZLENKO 398 10.09.12 18:04 Сейчас в теме
(33) Оно то может и лучше через Excel.Application, да вот только начиная с Excel 2007 почему то работа с ячейками на VBA настолько медленная, что выгрузить что то более менее объемное (типа прайса на несколько тыс. строк) просто нереально из-за быстрой деградации производительности. Перечитал интернет - многие жалуются на VBA в 2007-2010 и никакого решения этой проблемы не видно.
Пришлось сделать экспорт в два этапа - сначала готовим оформление ячеек в Excel при помощи VBA, а потом вставляем туда данные при помощи программно создаваемого содержимого буфера обмена - программно эмулируем действия пользователя КАНТРРЭЛ-ЦЭ и КАНТРЭЛ-ВЭ. В ближайшее время оформлю это в виде обработки - выложу тут.
34. AVVG 09.11.11 09:26 Сейчас в теме
Да очень классная вещь
Для отправки сообщения требуется регистрация/авторизация