CSV файлы удобно использовать для обмена данными между разными системами, передавая таким образом табличные данные посредством текстового файла. В предыдущей статье уже говорилось о том, как можно импортировать CSV-файлы в Bitrix посредством API. Теперь самое время поговорить о том, как можно сгенерировать 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-файл с нужными данными для вас, это бывает удобно, когда необходимо подогнать формат под оправку данных в другие системы. На этом у меня всё, всего доброго!
Очень заинтересовала статья! Сейчас есть у меня задача вытягивать различные произвольные данные - например, время прихода и ухода сотрудника, текущие задачи, их статус.
Из статьи совсем ничего не понял - куда вводить команды (это команды sql, php?), как определить название переменных, которые мне нужно вытащить.
Буду очень благодарен за пояснение или что нужно почитать, чтобы понять это все.
Это пример использования API Bitrix для формирования CSV, данные могут быть произвольные, передаёте в виде массива, см. $arrHeaderCSV