PHP Парсер xls/xlsx

PHP - Нормальный парсинг файлов Microsoft xls/xsx

    Добрый день! Потребовалось загружать и на лету и парсить страницы с данными из файлов xls/xlsx. После долгого шуршания гугла нашлись библиотеки (fork xls2csv и xslx2csv) xls&xlsxarray, для движка Zend как extensions. Данные библиотеки сразу выдают в php информацию в массиве. В принципе то что и нужно было. В примере 1 показано как это работает. Так же в наборе есть как генерировать xlsx файлы из php. Т.е. просто подключаем модули и работаем с xls и xslx.
    Но самое главное то , что парсинг делается самой библиотекой написанной на c , что как раз так сильно экономит оперативную память.
Разработчики внесшим donate могут дописывать функционал как угодно. Распространяется бесплатною, и за модули берут лишь donate. Так же вы можете написать разработчикам  если потребуется расширения php в виде модулей zend и за скромный donate напишут  любой сложности модуль. К примеру у них есть zfs модуль (в котором есть почти весь функционал по управлению ZFS без использования exec, т.е. работает на прямую с файловой системой. Конечно права доступа выставляете сами к данной библиотеке) который мы выложим позже. Информация о donate вы найдете в конце данной статьи. 
    Нам требовалось запустить модули во FreeBSD и Linux (для разных проектов). Тем неменее вам никто не мешает запускать и на Windows. Скачав архив с исходными кодами xls parser, и если нужно то архив с исходными кодами xlswriter. Распакуем и заходим в каталог с исходниками. пишем следующее:
phpize
./configure
make
make install
make clean

На этом получаем файлы so. Идем в php.ini и подключаем как обычно указав путь до файлов либо просто имена расширений если предварительно положить файлики рядом с php расширениями.
    Если же вам нужны готовые скомпилированные  модули либо расширить функционал, то вы можете написать им на почту sales@kcs.kz заплатив скромный donate и попросить скомпилировать под какую вам нужно ос. Они рады будут  донате и в размере 3$. Нам же нужно было скомпилированные модули под CentOS мы не пожалели к примеру 100$. И нам отправили весь набор библиотек. Со словами благодарности за поддержку.

Функции которые есть в библиотеке:
XSLX:

xlsx2array($filename [, $sheetname]);
returns an array of objects, where object is a row
or false on error
xlsx_get_sheets($filename);
returns an array of sheetnames
or false on error

XSL:

xls2array($filename [, $sheetname]);        
        returns an array of objects, where object is a row
        or false on error
xls_get_sheets($filename);
        returns an array of sheetnames
or false on error

XSLXWRITER:
$file_path - файл с полным путем 
$data - данные вида:

      [
              [
                     "col1",
                     "col2"
              ],
              [
                     "col1",
                     "col2"
              ]
      ]

ПРИМЕР 1:



array(20) {
 [0]=>
  array(8) {
    [0]=>
    string(24) "Наименование"
    [1]=>
    string(16) "Описание"
    [2]=>
    string(27) "Дата основания"
    [3]=>
    string(42) "Дата последнего релиза"
    [4]=>
    string(25) "Полный доступ"
    [5]=>
    string(23) "Полное право"
    [6]=>
    string(14) "Активен"
    [7]=>
    NULL
  }
  [1]=>
  array(8) {
    [0]=>
    string(3) "8on"
    [1]=>
    string(92) "Авторизация по файл-ключу (подробнее в документах)"
    [2]=>
    int(42545)
    [3]=>
    int(43194)
    [4]=>
    string(1) "+"
    [5]=>
    string(1) "+"
    [6]=>
    string(1) "+"
    [7]=>
    NULL
  }
  [2]=>
  array(8) {
    [0]=>
    string(12) "DOCS manager"
    [1]=>
    string(80) "Информационная система по учету документов"
    [2]=>
    int(43203)
    [3]=>
    int(43205)
    [4]=>
    string(1) "+"
    [5]=>
    string(1) "+"
    [6]=>
    string(1) "-"
    [7]=>
    NULL
  }
  [3]=>
  array(8) {
    [0]=>
    string(5) "Eveny"
    [1]=>
    string(106) "Сайт-афиша (старое название: YouVis)  (подробнее в документах)"
    [2]=>
    int(40831)
    [3]=>
    string(1) "-"
    [4]=>
    string(1) "+"
    [5]=>
    string(1) "-"
    [6]=> string(1) "-" [7]=> NULL }

[6]=>
    string(1) "-"
    [7]=>
    NULL
  }

Резюмируя: 

    хотим отметить, что основная цель команды расширить функционал php и сделать простыми в использовании данных расширений. Поддержите команду и мы увидим в свет модули для php: zfs,docx_doc_writer_php,php_web_server_forks,network settings (FreeBSD/Debian/Ubuntu/CentIoOS),ipfw_php,netgraph_php и так далее.


XLSWRITER
XLSPARSER

DONATE:

                                                    
    MASTER CARD:
                        : 5169 4971 6605 6378
    BANK: 
                        : KZ86826A1KZTD2012009
                        :170 340 020 993
                        :SABRKZKA