(现在用PHPExcel 1.7.8)条件格式不工作
我创建了一个表,并与数字数据的表格填充它。然后,Excel拒绝将三色转换类型的条件格式应用于数字数据。
这意味着,太:
1)我可以使用“前10个值”之类的
2)的条件格式如果我填写旁边生成的表几细胞数量,然后我可以使用过渡同类产品中COND格式
3)如果我从生成的表其他地方在简单的复制/粘贴复制的时尚两个单元仍然无法使用的过渡格式
4)如果我复制ŧ从其他地方使用“刚才的值”生成的表格中的窝细胞可以使用过渡格式
另一个重要的观察这里是,当我选择生成的表的单元格并点击进入值栏 - 就在那一刻 - 单元格将其颜色更改为应该与条件格式相关的内容!
这有点类似于另一现象我观察到PHPExcel生成的电子表格。有时会发生,当我双击进入一个单元格进入编辑模式 - 单元格变成黑色。但我仍然可以改变价值。
似乎是坏了细胞是如何在Excel的文件我猜表示。与着色控制有关的东西...!?
我当然可以复制/(值 - )粘贴一切。但也许我只是用错误的方式使用PHPExcel?或者有一种快速的方式来以有用的方式一次转换一个Excel文件?
完整的代码我使用是这样的:
$excelWorkbook = null;
if(file_exists($filename)) {
$reader = PHPExcel_IOFactory::createReader("Excel2007");
$excelWorkbook = $reader->load($filename);
} else {
$excelWorkbook = new PHPExcel();
}
$sheet = $excelWorkbook->getSheetByName($tabName);
if ($sheet !== null) {
$excelWorkbook->removeSheetByIndex($excelWorkbook->getIndex($sheet));
}
$sheet = new PHPExcel_Worksheet($excelWorkbook, $tabName);
$sheet = $excelWorkbook->addSheet($sheet);
$columns = array_keys($targetArray);
$rows = array_keys($targetArray[$columns[0]]);
for($i = 0; $i < count($columns); $i++){
$sheet->setCellValueByColumnAndRow($i+1,1,$columns[$i]);
}
for($i = 0; $i < count($rows); $i++){
$sheet->setCellValueByColumnAndRow(0,$i+2,$rows[$i]);
}
for($i = 0; $i < count($columns); $i++){
for($j = 0; $j < count($rows); $j++) {
$sheet->setCellValueByColumnAndRow($i+1, $j+2, $targetArray[$columns[$i]][$rows[$j]]);
}
}
$excelWorkbook->setActiveSheetIndex($excelWorkbook->getIndex($sheet));
$xlsx = new PHPExcel_Writer_Excel2007($excelWorkbook);
$xlsx->save($filename);