RT
在做的一个东西,需要读取excel中个别列的内容,之前用的php excelreader,但是合并的单元格都是空的值,而且我的excel也不好判断只要是空的就用数组中上个的值这种方法,本身excel也比较复杂不太好做修改,请问还有别的类或者方法可以解决这问题吗?


回复讨论(解决方案)

试试这个 http://www.oschina.net/code/snippet_76782_1264

那个貌似我看了,它对单元格合并的操作时在写入的时候,貌似后面那个赋值是给合并后的单元格写值呢吧,虽然没有直接解决问题,不过我想要是能写入,肯定相应的应该会能读把,我在看看有没有能判断是合并了的单元格之类的,先谢谢了……

没法直接读呀……
最后只能用vba写的宏把合并的单元格都分开,并且把值都还原,然后在用php读呀……

想到一种方法:可以判断当前的单元格的值进行处理就行!
查找的空值的单元格如果是合并的单元格的话,值就是上列或几列的值。例如:
for ($i = 1; $i sheets[0]['numRows']; $i++) {
for ($j = 1; $j sheets[0]['numCols']; $j++) {
if(trim($data->sheets[0]['cells'][$i][$j]) ==""){//是值为空的合并单元格,更具需要判断
for($k=$i-1;$k>=0;$k--){
if(trim($data->sheets[0]['cells'][$k][$j])!=""){
$data->sheets[0]['cells'][$i][$j] = $data->sheets[0]['cells'][$k][$j];
break;
}
}
//这里可以进一步处理!
}
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "
";
}

09-16 09:20