Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spreadsheetreader对象在PHP中为foreach上的数组提供零元素_Php_Arrays_Excel - Fatal编程技术网

spreadsheetreader对象在PHP中为foreach上的数组提供零元素

spreadsheetreader对象在PHP中为foreach上的数组提供零元素,php,arrays,excel,Php,Arrays,Excel,我正在使用php SpreadsheetReader库转换XML。但是我无法从SpreadsheetReader对象中获取数组。我从SpreadsheetReader中获取的对象是我正在转储以检查是否得到结果的这个数组 --------------------------------- SpreadsheetReader Object ( [Options:SpreadsheetReader:private] => Array ( [Delimiter] =>

我正在使用php SpreadsheetReader库转换XML。但是我无法从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();
        }

您可以尝试使用PHP Excel库(github.com/PHPOffice/PHPExcel)而不是电子表格阅读器库吗。它具有使用excel库的全部功能


希望这有帮助

你能告诉我-1和downvote的原因吗?你能用PHP Excel库()代替电子表格阅读器库吗。它会工作。好的,我可以这样做,因为我认为电子表格阅读器是旧的,现在它是不正确的工作!你会接受我的回答吗?我会的