【问题标题】:Build a table with PHPExcel array return (columns and rows)使用 PHPExcel 数组返回构建表(列和行)
【发布时间】:2016-06-08 20:26:00
【问题描述】:

我正在使用 CodeIgniter 和 PHPExcel 来制作一个系统。在这里,我在 ExcelModel 中有循环和返回函数来循环我想要的列和行:

$lastColumn = $objWorksheet->getHighestColumn();
    $lastColumn++;
    $cell = array();
    for ($row = 2; $row <= 7; $row++) {
        for($column = 'A'; $column != $lastColumn; $column++) {
            $cell[] = $objWorksheet->getCell($column.$row)->getValue();
        }
    }

    return $cell;

我的视图正在接收数据,一切都很好。但是,我想用数据构建一个 HTML 表,但问题是:该数组没有我写的键,所以在我的表中,当我输出标签内的变量时,它出现了同样的情况。看:

foreach ($excelData as $dataArray) {
            echo '<tr>';
            echo '<td>' . $dataArray . '</td>';
            echo '<td>' . $dataArray . '</td>';
            echo '<td>' . $dataArray . '</td>';
            echo '<td>' . $dataArray . '</td>';
            echo '<td>' . $dataArray . '</td>';
            echo '</tr>';
        }

我知道如果我有这样的事情:

foreach ($excelData as $dataArray) {
            echo '<tr>';
            echo '<td>' . $dataArray['example1'] . '</td>';
            echo '<td>' . $dataArray['example2'] . '</td>';
            echo '<td>' . $dataArray['example3'] . '</td>';
            echo '<td>' . $dataArray['example4'] . '</td>';
            echo '<td>' . $dataArray['example5'] . '</td>';
            echo '</tr>';
        }

它会工作的。但是,由于我的数组是空的,并且在 ExcelModel 中的循环之后被填充,我该怎么做呢?

【问题讨论】:

  • 嗨,请查看post
  • @elddenmedio 无法理解我的问题
  • @elddenmedio 现在我明白了,我使用了 CI 中的表格,并且工作起来非常有魅力!非常感谢!我会用解决方案来回答!

标签: php arrays codeigniter


【解决方案1】:

感谢@elddenmedio

它适用于 CI 的表库。这是最终代码:

function readReport() { //Função para retorno dos dados do arquivo Excel
    $this->excel = PHPExcel_IOFactory::load(APPPATH."/exceldata/export.xlsx");
    $this->table->set_heading(
            'Nº Operação',
            'Etapa Atual do WF',
            'Usuário Resp. pela Tarefa',
            'Denominação',
            'Data Envio'
        );

    //Seleciona a planilha ativa
    $objWorksheet = $this->excel->getActiveSheet();

    //Efetua loop de colunas e linhas para buscar os dados
    $lastColumn = $objWorksheet->getHighestColumn();
    $lastColumn++;
    $cell = array();

    //Efetua loop de colunas e linhas para buscar os dados
    for ($row = 2; $row <= 7; $row++) {
        for($column = 'A'; $column != $lastColumn; $column++) {
            $cell[] = $objWorksheet->getCell($column.$row)->getValue();
        }
    }

    //Gera dados da tabela com base no array recebido do loop
    $tableList = $this->table->make_columns($cell, 5);

    //Altera o layout da tabela à ser gerada
    $tmpl = array ( 'table_open'  => '<table class="table">' );
    $this->table->set_template($tmpl);

    //Retorna/gera a tabela na View
    return $this->table->generate($tableList);
  }

【讨论】:

    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多