PHPExcel从x和y获取单元格

时间:2017-09-20 20:25:18

标签: php phpexcel

我正在制作一个程序而且我正在使用PHPExcel。在程序内部,您可以选择宽度和高度。 (宽度是绿色行,蓝色是高度)

所有白色数字都是价格。 让我说插入1400宽度和1600高度。价格应该是640.我怎样才能做到这一点?

enter image description here

1 个答案:

答案 0 :(得分:0)

最简单的选项是在行1400(示例中为1)中查找哪个列包含D,以及{{1}列中包含1600的行(在您的示例中为A),然后使用它来读取该单元格的值(5

一种更聪明的方法是使用Excel公式:

D5

替换=INDIRECT(CONCATENATE(SUBSTITUTE(ADDRESS(1,MATCH(1400,A1:E1,0),4),1,""),MATCH(1600,A1:A17,0))) 1400的相应查找值,并将1600范围调整为宽度和高度查找的完整大小....在MS Excel本身,您可以使用行和列范围(MATCH)和(A:A),但PHPExcel计算引擎不会正确处理行和列范围,但它将适用于单元格范围

作为上述公式的解释:

1:1

在单元格范围A1:E1(查找宽度匹配)中查找值1400。 MATCH(1400,A1:E1,0) 的返回值是该行所在列的数字偏移量。在这种情况下,它将返回MATCH()

4

将列号转换为列字母...例如将SUBSTITUTE(ADDRESS(1,<4>,4),1,"") 转换为4。如果你的范围没有从D开始,那么你必须添加一个偏移来获得正确的字母

A

与之前的MATCH类似,但这次在您的高度列范围(MATCH(1600,A1:A17,0) )中搜索值A1:A17。它将在找到值的范围内返回偏移量。同样,如果您的范围不是从行1600开始,那么您需要添加偏移量。在您的情况下,它将返回1

5

将计算的列和行值连接在一起,以提供单元格地址(CONCATENATE(<D>,<5>)

D5

读取我们计算的单元格地址(INDIRECT(<D5>) )的值,给出值D5