我开始使用 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' (length = 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