2012-11-15 39 views
1

(现在用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); 

回答

1

解决办法型溶液是在相应的片材以选择所有的细胞,并选择作为背景色“无”。

显然,单元格是白色的,这种着色重叠了条件着色。

0

这可能是一个错误,由于是在电池中的固体填充的Excel逆转的前景和背景颜色,但在条件(DXF)格式,它没有意义的事实。

或者,换一种方式的背景和前景都存储不同的细胞和条件格式。

在Perl中的Excel ::作家:: XLSX模块I encountered this issue