【问题标题】:PHPExcel together cells contain same data issuePHPExcel 一起单元格包含相同的数据问题
【发布时间】:2012-01-24 17:24:43
【问题描述】:

当我使用 PHPExcel 类读取 ods 文件(xls 和 xlsx 都可以)并且两个单元格在一起并包含相同的数据时,第二个单元格变为空白,这是一个错误吗?这是我的代码:

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '../../Librerias/phpexcel/Classes/');
include 'PHPExcel/IOFactory.php';

$input_fileName = dirname(__FILE__) . '/bug.ods';
$input_file_type = PHPExcel_IOFactory::identify($input_fileName);   
$reader = PHPExcel_IOFactory::createReader($input_file_type);
$reader->setReadDataOnly(true); 
$objPHPExcel = $reader->load($input_fileName);  
$objPHPExcel->setActiveSheetIndex(0);
$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator();

$array_data = array();
foreach($rowIterator as $row){
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);
    $rowIndex = $row->getRowIndex ();    
    foreach ($cellIterator as $cell) {
            $array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
    }
}
echo '<pre>' ; print_r($array_data); echo '</pre>' ;

?>

这里是bug.ods中的内容

  | A   |   B   |   C   |   D   |   E   |   F
-----------------------------------------------
1 | 1   |   1   |   2   |   2   |   3   |   3
2 | 2   |   2   |   1   |   1   |   3   |   3
3 | 3   |   3   |   1   |   1   |   2   |   2
4 | a   |   a   |   b   |   b   |   c   |   c
5 | b   |   b   |   a   |   a   |   c   |   c
6 | c   |   c   |   a   |   a   |   b   |   b

...这里是 print_r 输出。

Array
(
    [1] => Array
        (
            [A] => 1
            [B] => 
            [C] => 2
            [D] => 
            [E] => 3
        )

    [2] => Array
        (
            [A] => 2
            [B] => 
            [C] => 1
            [D] => 
            [E] => 3
        )

    [3] => Array
        (
            [A] => 3
            [B] => 
            [C] => 1
            [D] => 
            [E] => 2
        )

    [4] => Array
        (
            [A] => a
            [B] => 
            [C] => b
            [D] => 
            [E] => c
        )

    [5] => Array
        (
            [A] => b
            [B] => 
            [C] => a
            [D] => 
            [E] => c
        )

    [6] => Array
        (
            [A] => c
            [B] => 
            [C] => a
            [D] => 
            [E] => b
        )

)

我做错了吗?是bug吗?

有什么想法吗?

【问题讨论】:

  • 当您说two cells are together 时,您的意思是它们是合并的单元格吗?因为如果是这样,这将是预期的行为。当单元格合并时,它们实际上变成了一个单元格,因此只有一个值。返回的结构将显示空单元格以保持表格布局正确。可以说,如果第二个“单元格”是对第一个“单元格”的引用会更好,但这仍然是一种明智的方法......
  • 对不起我的英语...我很好,我的意思是,一个单元格紧挨着另一个单元格,而不是合并。像上面的例子。

标签: php phpexcel


【解决方案1】:

PHPExcel 问题跟踪器上的问题: http://phpexcel.codeplex.com/workitem/17471 这修复了两个值,但如果存在值重复而不是两次问题

【讨论】:

    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多