spreadsheetreader对象在PHP中为foreach上的数组提供零元素
我正在使用php SpreadsheetReader库转换XML。但是我无法从SpreadsheetReader对象中获取数组。我从SpreadsheetReader中获取的对象是我正在转储以检查是否得到结果的这个数组spreadsheetreader对象在PHP中为foreach上的数组提供零元素,php,arrays,excel,Php,Arrays,Excel,我正在使用php SpreadsheetReader库转换XML。但是我无法从SpreadsheetReader对象中获取数组。我从SpreadsheetReader中获取的对象是我正在转储以检查是否得到结果的这个数组 --------------------------------- SpreadsheetReader Object ( [Options:SpreadsheetReader:private] => Array ( [Delimiter] =>
---------------------------------
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库()代替电子表格阅读器库吗。它会工作。好的,我可以这样做,因为我认为电子表格阅读器是旧的,现在它是不正确的工作!你会接受我的回答吗?我会的