<?php namespace infrajs\excel; use infrajs\access\Access; use infrajs\ans\Ans; use infrajs\config\Config; Access::test(true); $ans = array(); $data = Xlsx::init('-test-akiyatkin/resources/test.xlsx'); if (!$data) { return Ans::err($ans, 'Cant read test.xlsx'); } $data = Xlsx::init('-test-akiyatkin/resources/test.csv'); if (!$data) { return Ans::err($ans, 'Cant read test.csv'); } if (sizeof($data['childs']) != 1) { return Ans::err($ans, 'Cant read test.csv ' . sizeof($data['childs'])); } $num = ini_get('mbstring.func_overload'); if ($num != 0) { $ans['class'] = 'bg-warning'; return Ans::err($ans, 'mbstring.func_overload should be 0, not ' . $num); } else { $data = Xlsx::get('-test-akiyatkin/resources/test.xls'); if (sizeof($data['childs'][0]['data']) != 30) { return Ans::err($ans, 'Cant read test.xls ' . sizeof($data['childs'][0]['data'])); } } return Ans::ret($ans, 'csv, xls, xlsx read ok!');
use infrajs\excel\Xlsx; use infrajs\router\Router; use infrajs\ans\Ans; if (!is_file('vendor/autoload.php')) { chdir('../../../'); require_once 'vendor/autoload.php'; Router::init(); //Требуется автоматическая установка } $ans = array(); //Три уровня разбора данных //1 Минимум требований к структуре Excel документа, данные "как есть" $data = Xlsx::parse('vendor/infrajs/excel/test.xlsx'); if (sizeof($data) != 22) { return Ans::err($ans, 'Некорректный результат Xlsx::parse ' . sizeof($data)); } //2 Простая структура - Распознаются заголовки таблицы, описание таблицы, структура групп. Можно применять Xlsx::runPoss и Xlsx::runGroups $data = Xlsx::get('vendor/infrajs/excel/test.xlsx'); if (sizeof($data) != 7) { return Ans::err($ans, 'Некорректный результат Xlsx::get ' . sizeof($data)); } //3 Оптимизировання структура. Обязательна колонка Артикул, объединение групп. Большой список опций вторым аргументом $data = Xlsx::init('vendor/infrajs/excel/test.xlsx'); /*echo count($data); echo '<pre>'; print_r($data); exit;*/ if (sizeof($data['childs']) != 1) { return Ans::err($ans, 'Некорректный результат Xlsx::init ' . sizeof($data)); } return Ans::ret($ans);
if ($fdata['ext'] && $fdata['ext'] != $fd['ext']) { return; } elseif ($result) { //Расширение не указано и уже есть результат //Исключение.. расширение tpl самое авторитетное if ($fd['ext'] != 'tpl') { return; } } $result = $file; }, scandir(Path::theme($folder))); if (!$result) { return false; } return Path::theme($folder . $result); }, array($fdata['path']), isset($_GET['re'])); $ans = array('src' => $isrc); if (!$src) { if (!Load::isphp()) { header('HTTP/1.0 404 Not Found'); } return; } $fdata = Load::srcInfo($src); if (in_array($fdata['ext'], array('xls', 'xlsx', 'csv'))) { $ans = Xlsx::get($src); return Ans::ans($ans); } if (!Load::isphp()) { header('HTTP/1.0 400 Bad Request'); }