【问题标题】:Export to Excel/CSV with multiple tabs in php?在 php 中使用多个选项卡导出到 Excel/CSV?
【发布时间】:2017-06-23 04:27:48
【问题描述】:

我们的应用程序需要导出到具有多个选项卡的 Excel 工作表(Excel 工作表)。为此我正在使用 [PHPExcel][1] 但它工作正常但如何从 mysql 数据库动态插入数据。

下面是我的代码:

<?php
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Name of Sheet 1');

// Create a new worksheet, after the default sheet 
$objPHPExcel->createSheet();

// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');

// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

工作正常,正在生成 Excel 工作表,但是如何从数据库中添加数据以及 Excel 工作表列名和表列名。代替“$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');”如何动态添加表格数据?

【问题讨论】:

  • 分享你的代码,如果你不知道你的错误是什么,至少解释一下你想要完成什么。
  • 单标签 Excel 文档是否正常工作?
  • 不,在我的本地主机中运行后,它会抛出一些类似上面的错误消息。

标签: php export-to-excel export-to-csv


【解决方案1】:

使用select查询将数据库中的数据分配到数组中,并使用fromArray将数据填充到excel中

    $data=[];
    $i=2;
    $mx=mysqli_query($con,"SELECT * FROM table");
                  while($row=mysqli_fetch_array($mx))
                  {
                      //values from db..col A,col B,col C,col D
                    $data= array($row[0],$row[1],$row[2],$row[3]);

                 //row number                 
                   $ii="A".$i;

        //insert data from db to excel 
                    $objPHPExcel->getActiveSheet()->fromArray($data, ' ', $ii);
                     $i++;

                  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多