Объект spreadsheetreader дает нулевой элемент в массиве на foreach в PHP

Я использую библиотеку php SpreadsheetReader для преобразования xmls. Но я не могу получить массив из объекта SpreadsheetReader. Объект, который я получаю из spreadsheetReader, - это то, что я сбрасываю, чтобы проверить, получает ли он результат или нет.

---------------------------------
SpreadsheetReader Object
(
[Options:SpreadsheetReader:private] => Array
    (
        [Delimiter] => 
        [Enclosure] => "
    )

[Index:SpreadsheetReader:private] => 0
[Handle:SpreadsheetReader:private] => SpreadsheetReader_XLSX Object
    (
        [Options:SpreadsheetReader_XLSX:private] => Array
            (
                [TempDir] => 
                [ReturnDateTimeObjects] => 
            )

        [Valid:SpreadsheetReader_XLSX:private] => 
        [Handle:SpreadsheetReader_XLSX:private] => 
        [WorksheetPath:SpreadsheetReader_XLSX:private] => 
        [Worksheet:SpreadsheetReader_XLSX:private] => 
        [SharedStringsPath:SpreadsheetReader_XLSX:private] => /tmp/5aa7b15db61c2/xl/sharedStrings.xml
        [SharedStrings:SpreadsheetReader_XLSX:private] => XMLReader Object
            (
            )

        [SharedStringCache:SpreadsheetReader_XLSX:private] => Array
            (
                [0] => Tracking
                [1] => FNSKU
                [2] => Unit
                [3] => 1Z602E9V0353649041
                [4] => B01H1QHAG2
                [5] => 1ZW0Y535YW02179096
                [6] => 1Z86766F0345241153
                [7] => 1Z86766FYW05003684
                [8] => 1Z4E1628YW02903978
                [9] => B01H1QHL9I
                [10] => 1Z602E9V0353656293
                [11] => 1ZW22A810324494264
                [12] => 1Z86766F0345201473
                [13] => 1Z4E1628YW02961076
                [14] => B01L91OQOY
                [15] => 1Z602E9V0353682139
            )

        [WorkbookXML:SpreadsheetReader_XLSX:private] => SimpleXMLElement Object
            (
                [workbookPr] => SimpleXMLElement Object
                    (
                    )

                [sheets] => SimpleXMLElement Object
                    (
                        [sheet] => SimpleXMLElement Object
                            (
                                [@attributes] => Array
                                    (
                                        [state] => visible
                                        [name] => Sheet1
                                        [sheetId] => 1
                                    )

                            )

                    )

                [definedNames] => SimpleXMLElement Object
                    (
                    )

                [calcPr] => SimpleXMLElement Object
                    (
                    )

            )

        [Styles:SpreadsheetReader_XLSX:private] => Array
            (
                [0] => 0
            )

        [TempDir:SpreadsheetReader_XLSX:private] => /tmp/5aa7b15db61c2/
        [TempFiles:SpreadsheetReader_XLSX:private] => Array
            (
                [0] => /tmp/5aa7b15db61c2/xl/sharedStrings.xml
            )

        [CurrentRow:SpreadsheetReader_XLSX:private] => 
        [Index:SpreadsheetReader_XLSX:private] => 0
        [Sheets:SpreadsheetReader_XLSX:private] => Array
            (
                [3] => Sheet1
            )

        [SharedStringCount:SpreadsheetReader_XLSX:private] => 23
        [SharedStringIndex:SpreadsheetReader_XLSX:private] => 0
        [LastSharedStringValue:SpreadsheetReader_XLSX:private] => 
        [RowOpen:SpreadsheetReader_XLSX:private] => 
        [SSOpen:SpreadsheetReader_XLSX:private] => 
        [SSForwarded:SpreadsheetReader_XLSX:private] => 
        [Formats:SpreadsheetReader_XLSX:private] => Array
            (
            )

        [ParsedFormatCache:SpreadsheetReader_XLSX:private] => Array
            (
            )

    )

[Type:SpreadsheetReader:private] => XLSX

)

Как я могу получить массив из этого SharedStringCache: SpreadsheetReader_XLSX: private

Я использую этот код для получения массива из программы чтения электронных таблиц, но он возвращает пустой массив.

        require('php-excel-reader/excel_reader2.php');
        require('SpreadsheetReader.php');

        date_default_timezone_set('UTC');

        try
        {        
    $Spreadsheet = new SpreadsheetReader($Filepath);

            $BaseMem = memory_get_usage();

            $Sheets = $Spreadsheet -> Sheets();
            $col1 = 0;
            $col2 = 0;
            $col3 = 0;
            $isError = 0;
            $data = array();
            $random =  $this->getRandom(rand(5,10));
            $findIndex = array();
    $i = 0;

            foreach ($Sheets as $Index => $Name)
            {

                $Time = microtime(true);

      $Spreadsheet -> ChangeSheet($Index);

      //$count = count($Row);
      $col1 =$col2 =$col3 = 1;

                foreach ($Spreadsheet as $Key => $Row)
                {
                    if ($Key == 0)
                    {
                        foreach ($Row as $keys => $vals) {

                            if (strtolower($vals) == 'Tracking')
                            {
                                $col1 = 1;

                                $findIndex['Tracking'] = $keys;
                            }
                            elseif (strtolower($vals) == 'FNSKU')
                            {
                                $col2 = 1;

                                $findIndex['FNSKU'] = $keys;
            }
            elseif (strtolower($vals) == 'Unit')
                            {
                                $col3 = 1;

                                $findIndex['Unit'] = $keys;
                            }

                        }

                    }
                    else
                    {
                        if ($col1 == 1 &&  $col2 == 1 && $col3 == 1)
                        {


                                $i++;
                                $data[$i]['Tracking'] = $Row[$findIndex['Tracking']];
                                $data[$i]['FNSKU'] = $Row[$findIndex['FNSKU']];
                                $data[$i]['Unit'] = $Row[$findIndex['Unit']];


                        }
                        else
                        {
                            $isError  = 1;

                        }


                    }

      }
      var_dump($data);
      exit;   

                if ($isError == 0)
                {   
                    $count = count($data);
                    //echo json_encode(array("is_data"=>1,"data"=>$data,"total"=>$count));
                    $this->main_manager->insertData($data);

                }
                else
                {

                    echo json_encode(array("error"=>1,"error_code"=>"invalid excel File..."));
                }



            }

        }
        catch (Exception $E)
        {
            echo $E -> getMessage();
        }

Не могли бы вы рассказать мне причину -1 и голоса против

Hassaan 13.03.2018 13:09

Можете ли вы попробовать использовать библиотеку PHP Excel (github.com/PHPOffice/PHPExcel) вместо библиотеки для чтения электронных таблиц. Это будет работать.

Jenil Kanani 13.03.2018 13:26

Хорошо, я могу это сделать, так как я думаю, что программа чтения электронных таблиц устарела и теперь не работает

Hassaan 13.03.2018 13:33

Верный! Вы примете мой ответ?

Jenil Kanani 13.03.2018 13:34

Я сделаю это, когда закончу, чувак

Hassaan 13.03.2018 14:51

Конечно! Спасибо :)

Jenil Kanani 14.03.2018 06:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
322
1

Ответы 1

Можете ли вы попробовать использовать библиотеку PHP Excel (github.com/PHPOffice/PHPExcel) вместо библиотеки для чтения электронных таблиц. Он с полной функциональностью для работы с библиотекой Excel.

Надеюсь это поможет!

Другие вопросы по теме