ファイルを読み取るために PHPExcel を使い始めました。
私の最初のステップでは、ファイルの一部を取得します。これは、役に立たない別のファイルがあるためです。rangeToArray 関数がこれに役立つことがわかりました。
試しに、A12行目からY25行目まで取得してみました。
$sheetData = $objPHPExcel->getActiveSheet()->rangeToArray('A12:Y25');
これは次のようなものを返します。
array (size=14)
0 =>
array (size=25)
0 => float 258500
1 => string '#REF!' (length=5)
2 => string 'Nº equivocado' (length=14)
3 => string 'Nº equivocado' (length=14)
4 => boolean false
5 => boolean false
6 => boolean false
7 => boolean false
8 => boolean false
9 => boolean false
10 => null
11 => boolean false
12 => string '#DIV/0!' (length=7)
13 => string '166,056' (length=7)
14 => float 0
15 => string '11,070' (length=6)
16 => string '1,510' (length=5)
17 => string '12,580' (length=6)
18 => string 'Transferencia' (length=13)
19 => string 'Cheque' (length=6)
20 => string '1/1/2016' (length=8)
21 => string '1/31/2016' (length=9)
22 => null
23 => null
24 => string 'EL COSTO ANUAL ES 10% SUPERIOR AL MENSUAL X 12, DEBIDO AL 10% DE COMISION DE FASCIOLI' (length=85)
しかし実際には、配列内の一部の値は、一部のセルを含む値と一致しません。
行は画像キャプチャで選択されています。これは、 rangeToArray 関数に取得しようとしているものです。
配列によって返された値が、Excel のセルである文字列と正確に一致しないことがわかったので、その特定のセルを取得しようとしました。
$sheetData = $objPHPExcel->getActiveSheet()->getCell('E12');
そして、セルの内容が変数呼び出し「calculatedValue」に格納されていることがわかりました。
object(PHPExcel_Cell)[3121]
private 'value' => string '=IF($A12=$B12,VLOOKUP($A12,#REF!,2))' (length=36)
private 'calculatedValue' => string 'PRINA EDIFICIO ' (length=30)
private 'dataType' => string 'f' (length=1)
private 'parent' =>
次に、rangeToArray 関数を使用したセルの値が getCell 関数で「boolean false」を返し、private 'calculatedValue' => string 'PRINA EDIFICIO' (長さ = 30) として返されることがわかりました。
また、これらのセルが別の Excel から収集された値で満たされていることも確認できました。
=SI($A12=$B12;CONSULTAV($A12;'C:\wamp\www\PHPExcel\Documentation\Examples\Reader\sampleData\[BASE_RETENIDOS.xls]BASE DE DATOS'!$B$5:$I$729;2))
そのため、私の質問は、他のExcelに依存せずに取得した場合、値を文字列形式で取得できるかどうかです。
ありがとう
] 1