【问题标题】:PHPExcel: Set Column Names fromArray using PHP arrayPHPExcel:使用 PHP 数组从数组中设置列名
【发布时间】:2016-07-03 14:55:39
【问题描述】:

我正在使用 PHPExcel 库将数据导出到 Excel。我能够按预期获得所有数据以表现出色。但是如何从 PHP 数组中设置列名。这是我正在使用的代码。请帮忙

    $data=(
    array(10) (
      [0] => array(8) (
        [#] => (string)
        [Name] => (string) Student1
        [ID] => (string) 123456
        [Date] => (string) 2016-02-01
        [Group] => (string) Physics
        [Month] => (string) February
        [Year] => (string) 2016
      )
      [1] => array(8) (
        [#] => (string)
        [Name] => (string) Student2
        [ID] => (string) 569874
        [Date] => (string) 2016-02-01
        [Group] => (string) Biology
        [Month] => (string) February
        [Year] => (string) 2016......);

    $objPHPExcel = new PHPExcel();

    $objPHPExcel->setActiveSheetIndex(0);
    $objPHPExcel->getActiveSheet()->setCellValue('A1', "#");
    $objPHPExcel->getActiveSheet()->setCellValue('B1', "Name");
    $objPHPExcel->getActiveSheet()->setCellValue('C1', "ID");
    $objPHPExcel->getActiveSheet()->setCellValue('D1', "Date");
    $objPHPExcel->getActiveSheet()->setCellValue('E1', "Group");
    $objPHPExcel->getActiveSheet()->setCellValue('F1', "Month");
    $objPHPExcel->getActiveSheet()->setCellValue('G1', "Year");

//如何替换/制作上面的动态行以根据数组数据作为列名设置第一行中的单元格值。即姓名,ID,日期,.....

//Add Data

$objPHPExcel->getActiveSheet()->fromArray($data,NULL,'A2');

【问题讨论】:

    标签: php phpexcel


    【解决方案1】:

    喜欢这个?

    $objPHPExcel->getActiveSheet()->fromArray(array_keys($data[0]),NULL,'A2');
    

    既然我知道这就是你想要做的,简单解释一下。

    Array_keys 将数组中的所有键作为值复制到编号数组中,所以如果你有这样的数组:

    [#] => (string)
    [Name] => (string) Student1
    [ID] => (string) 123456
    [Date] => (string) 2016-02-01
    [Group] => (string) Physics
    [Month] => (string) February
    [Year] => (string) 2016
    

    它将返回以下数组:

    [0] = "#"
    [1] = "Name"
    [2] = "ID"
    ...
    

    【讨论】:

    【解决方案2】:
    // Header
    $objPHPExcel->getActiveSheet()->fromArray(array_keys(current($data)), null, 'A1');
    // Data
    $objPHPExcel->getActiveSheet()->fromArray($data, null, 'A2');
    

    【讨论】:

      【解决方案3】:

      此代码从数组中生成列

      class excelExport {
       public $columns = array(            
              0 => array('id' => "name", 'name' => 'Name'), 
              1 => array('id' => "tlf", 'name' => 'Telephone'),                                   
          );
      
      
       public function export(){      
      
      
          /** PHPExcel */
          $objPHPExcel = new PHPExcel();
      
          $objPHPExcel->setActiveSheetIndex(0);
          $objWorkSheet = $objPHPExcel->getActiveSheet();   
      
              $row =  1;
              $col = 0;
              for ($column = 'A'; ord($column) != ord('A')+count($this->columns); $column++) {
      
                  $cell = $objWorkSheet->getCell($column.$row);
                  $cell->setValue($this->columns[$col]["name"]);
                  $col++;
              }
      
              ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 2019-08-03
        • 1970-01-01
        相关资源
        最近更新 更多