Я использую библиотеку 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();
}
Можете ли вы попробовать использовать библиотеку PHP Excel (github.com/PHPOffice/PHPExcel) вместо библиотеки для чтения электронных таблиц. Это будет работать.
Хорошо, я могу это сделать, так как я думаю, что программа чтения электронных таблиц устарела и теперь не работает
Верный! Вы примете мой ответ?
Я сделаю это, когда закончу, чувак
Конечно! Спасибо :)






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