phpexcel 多个 sheet

数据:
Array
(
[明细] => Array
    (
        [0] => Array
            (
                [0] => 订单号
                [1] => SKU
                [2] => 数量
                [3] => 单价
                [4] => 金额
            )
        [1] => Array
            (
                [0] => PA00912006030006
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [2] => Array
            (
                [0] => DA00912006030007
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [3] => Array
            (
                [0] => PA00912006030011
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [4] => Array
            (
                [0] => PA00912006030012
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [5] => Array
            (
                [0] => PA00912006030013
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [6] => Array
            (
                [0] => PA00912006040007
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [7] => Array
            (
                [0] => PA00912006040008
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [8] => Array
            (
                [0] => PA00912006040009
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [9] => Array
            (
                [0] => PA00912006040010
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [10] => Array
            (
                [0] => PA00912006040011
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [11] => Array
            (
                [0] => PA00912006040012
                [1] => KO111
                [2] => 1
                [3] => 20.00
                [4] => 20
            )
        [12] => Array
            (
                [0] => PA00912006040013
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [13] => Array
            (
                [0] => PA00912006040014
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [14] => Array
            (
                [0] => PA00912006040015
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [15] => Array
            (
                [0] => PA00912006040016
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [16] => Array
            (
                [0] => PA00912006040017
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [17] => Array
            (
                [0] => PA00912006040018
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [18] => Array
            (
                [0] => PA00912006040019
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [19] => Array
            (
                [0] => PA00912006040020
                [1] => KO111
                [2] => 2
                [3] => 20.00
                [4] => 40
            )
        [20] => Array
            (
                [0] => 汇总
                [1] => 
                [2] => 27
                [3] => 
                [4] => 540
            )
    )

[汇总] => Array
    (
        [0] => Array
            (
                [0] => SKU
                [1] => 数量
                [2] => 单价
                [3] => 金额
            )
        [1] => Array
            (
                [0] => KO111
                [1] => 27
                [2] => 20.00
                [3] => 540
            )
        [2] => Array
            (
                [0] => 汇总
                [1] => 27
                [2] => 
                [3] => 540
            )
    )
)


/**
 * 导出 Excel
 * @param array $content    内容
 * @param string $fileName  文件名
 * @throws PHPExcel_Exception
 * @throws PHPExcel_Reader_Exception
 * @throws PHPExcel_Writer_Exception
 */
public function exportExcel($content = array(), $fileName = '') {
    if (empty($content)) die('内容不能为空!');
    if (empty($fileName)) die('文件名不能为空!');

    // 设置页面等待时间
    set_time_limit(0);
    // 不限制内存
    ini_set('memory_limit', -1);
    // 获取当前文件地址
    $dqml = dirname(__FILE__);
    // 引入库
    require "{$dqml}/libs/PHPExcel.php";

    $objPHPExcel = new PHPExcel();
    // 所有单元格居中
    $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    
    $i = 0;
    // 外循环产生每一项 Sheet
    foreach ($content as $key => $value) {
        // 创建新的工作空间 sheet
        if ($i > 0) $objPHPExcel->createSheet();
        $objPHPExcel->setActiveSheetIndex($i);
        // 给 Sheet 设置名字
        $objPHPExcel->getActiveSheet()->setTitle($key);

        // 内容
        $j = 1;
        // 外循环产生每一列
        foreach ($value as $val) {
            // 内循环产生每一行
            foreach ($val as $k => $v) {
                // 数字列转换为字母列 如:27变为AA
                $objPHPExcel->getActiveSheet()->setCellValue(PHPExcel_Cell::stringFromColumnIndex($k) . $j, $v);
            }
            $j++;
        }
        $i++;
    }
    
    $filename = iconv('UTF-8', 'UTF-8', $fileName);
    header('Pragma: public');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Type: application/force-download');
    header('Content-Type: application/vnd.ms-execl');
    header('Content-Type: application/octet-stream');
    header('Content-Type: application/download');
    header("Content-Disposition: attachment; filename=$filename");
    header('Content-Transfer-Encoding: binary');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用PHPExcel库来实现在PHP Laravel框架中导出多个sheet表。下面是一个简单的示例代码: ``` // 创建PHPExcel对象 $objPHPExcel = new PHPExcel(); // 创建第一个sheet表并设置标题 $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setTitle('Sheet1'); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Sheet1 Title'); // 创建第二个sheet表并设置标题 $objPHPExcel->createSheet(); $objPHPExcel->setActiveSheetIndex(1); $objPHPExcel->getActiveSheet()->setTitle('Sheet2'); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Sheet2 Title'); // 创建第三个sheet表并设置标题 $objPHPExcel->createSheet(); $objPHPExcel->setActiveSheetIndex(2); $objPHPExcel->getActiveSheet()->setTitle('Sheet3'); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Sheet3 Title'); // 导出Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="example.xlsx"'); $objWriter->save('php://output'); ``` 在上面的示例中,我们首先创建了一个新的PHPExcel对象。然后使用setActiveSheetIndex()方法来切换到要创建的工作区,使用setTitle()方法设置工作区的标题,并使用setCellValue()方法设置工作区中的数据。最后,我们使用createWriter()方法将PHPExcel对象保存为Excel文件并输出到浏览器。您可以根据需要重复这个过程来创建更多的工作区。 请注意,此示例使用的是PHPExcel库,这是一个强大的PHP库,用于创建、读取和操作Excel文件。但是,PHPExcel项目已经停止维护,因此我建议您使用其他替代库,例如PhpSpreadsheet,它是PHPExcel的后继者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值