Войти

Что вас интересует?

Как генерировать CSV-файлы в Bitrix?

CSV файлы удобно использовать для обмена данными между разными системами, передавая таким образом табличные данные посредством текстового файла. Теперь самое время поговорить о том, как можно сгенерировать CSV-файл в системе Bitrix. Этот пост может быть весьма полезен тем, кому нужно сделать кастомный экспорт данных из системы, и стандартных опций как правило может быть недостаточно. Если вы смотрели предыдущую статью, то вы наверняка уже знаете, что для работы с CSV-файлами в системе битрикс существует класс CCSVData. В нашем примере мы будет использовать его так же и для генерации CSV-файла, давайте приступим.

Перед использованием класса CCSVData подключим библиотеку, в которой он находится.

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/csv_data.php");
Далее создаём объект – экземпляр класса CCSVData:
$csvFile = new CCSVData();
Указываем какие разделители будут иметь поля:
$fields_type = 'R';
$delimiter = ";";
$csvFile->SetFieldsType($fields_type);
$csvFile->SetDelimiter($delimiter);
Далее формируем массив, который будет представлять из себя первую строку в файле – заголовки столбцов.
$arrHeaderCSV = array("NAME","CODE","SORT","PREVIEW_TEXT","DETAIL_TEXT");
Сохраняем «шапку» файла:
$csvFile->SaveFile("astra.csv", $arrHeaderCSV);

Каждая новая строка создаётся и сохраняется в CSV-файле аналогичным образом. Это означает, что вы можете в цикле записывать данные в файл, посредством метода SaveFile(). Каждая колонка должна соответствовать порядковому расположению относительно шапки. Таким образом получиться правильная структура таблицы. Сами колонки могут быть произвольного значения, т.е. вы формируете их на своё усмотрение.
В итоге, вы можете формировать CSV-файл с нужными данными для вас, это бывает удобно, когда необходимо подогнать формат под оправку данных в другие системы. На этом у меня всё, всего доброго!

Теги:
Комментрии
Комементариев нет, будьте первыми....
Оставить комментарий
Пожалуйста, введите ваше Имя.
Пожалуйста, введите ваш Email.
Пожалуйста, напишите комментарий.
Пожалуйста, подтвердите, что вы не робот.