SPREADSHEET_READER
SPREADSHEET_READER считывает данные с указанных листов файлов формата .xls
или .xlsx
. Позволяет указывать маппинг данных из таблицы и метаданных OneBridge. Удаленные файлы доступны для чтения через протоколы FTP и SFTP.
Должен иметь один выходной порт для успешно считанных записей.
Порты SPREADSHEET_READER:
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Output | 0 | да | Для успешно считанных записей | Любые |
1 | не | Для некорректных считанных записей |
Атрибуты SPREADSHEET_READER:
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
fileURL | да | Путь к файлу проекта, из которого читать данные. Для обращения по FTP используйте шаблон ftp://username:password@hostname:port/path-to-file | fileURL="testFile.txt" |
sheet | нет | Название или номер листа в excel документе. Нумерация страниц начинается с 0. Можно перечислить в атрибуте sheet через запятую либо указать множество листов с помощью «*», чтобы все листы читались по порядку с использованием одного маппинга для всех. | sheet="Sheet1" |
mapping | нет | Сопоставляет ячейки электронной таблицы с полями OneBridge. |
|
password | нет | Пароль для расшифровки файла,если он запаролен. Актально только для формата xlsx. | password="faihfi4t9(&Yhflaieg)" |
Пример. Сопоставление полей по порядку.
Нужно прочитать из файла таблицы с количеством проданных некой компанией товаров за первый квартал года. Таблицы имеют одинаковую структуру: название товара, январь, февраль, март. Компания международная. Каждый партнер может использовать свой язык, поэтому вы не можете сопоставить поля по имени.
лист 1:
Product | January | February | March |
---|---|---|---|
T1 | 620 | 600 | 700 |
T2 | 150 | 150 | 100 |
лист 2:
Товар | Январь | Февраль | Март |
---|---|---|---|
T1 | 500 | 400 | 600 |
T2 | 300 | 400 | 500 |
Решение:
Укажите атрибуты: fileURL
, sheet
, mapping
.
Заполните маппинг следующим образом:
<Node fileURL="${DATAIN_DIR}/Book2.xlsx" sheet="*" type="SPREADSHEET_READER">
<attr name="mapping"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mapping>
<globalAttributes>
<orientation>VERTICAL</orientation>
<step>1</step>
<writeHeader>true</writeHeader>
</globalAttributes>
<defaultSkip>1</defaultSkip>
<headerGroups>
<headerGroup skip="1">
<autoMappingType>ORDER</autoMappingType>
<headerRanges>
<headerRange begin="A1"/>
<headerRange begin="B1"/>
<headerRange begin="C1"/>
<headerRange begin="D1"/>
</headerRanges>
</headerGroup>
</headerGroups>
</mapping>
]]></attr>
</Node>