php快捷导出excel文件

使用PhpSpreadsheet 保存excel文件
blog
读取数据,生成table

 $orderList = Db::query($query); $strTable = '<table width="500" border="1">'; $strTable .= '<tr>'; $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">商品ID' . date("Y/m/d H:i:s", $begin) . '到' . date("Y/m/d H:i:s", $end);'</td>'; $strTable .= '<td style="text-align:center;font-size:12px;" width="100">商品名称</td>'; $strTable .= '<td style="text-align:center;font-size:12px;" width="*">规格</td>'; $strTable .= '<td style="text-align:center;font-size:12px;" width="*">总数量</td>'; $strTable .= '<td style="text-align:center;font-size:12px;" width="*">购买单数</td>'; $strTable .= '</tr>'; if (is_array($orderList)) { foreach ($orderList as $k => $val) { $strTable .= '<tr>'; $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['goods_id'] . '</td>'; $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['goods_name'] . ' </td>'; $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['spec_key_name'] . '</td>'; $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['goods_sum'] . ' </td>'; $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['goods_user_count'] . '</td>'; $strTable .= '</tr>'; } } $strTable .= '</table>'; unset($orderList); downloadExcel($strTable, 'order'); exit();

主要实现

/**
 * 导出excel
 * @param $strTable    表格内容
 * @param $filename 文件名
 */
function downloadExcel($strTable,$filename)
{
    header("Content-type: application/vnd.ms-excel");
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=".$filename."_".date('Y-m-d').".xls");
    header('Expires:0');
    header('Pragma:public');
    echo '<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'.$strTable.'</html>';
}

直接导出方法二

 public function openexcel() { header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachement;filename=Haoyunyun_" . date("Ymd") . ".xls"); $list = Db::table('info2')->limit(10)->select(); // 表头 $ReportArr[] = [1, 2, 3, 4, 5]; foreach ($list as $key => $value) { $ReportArr[] = [$value['name'],$value['name'],$value['name'],$value['name'],$value['name']]; } $ReportContent = ''; $num1 = count($ReportArr); for ($i = 0; $i < $num1; $i++) { $num2 = count($ReportArr[$i]); for ($j = 0; $j < $num2; $j++) { $ReportContent .= '"' . $ReportArr[$i][$j] . '"' . "\t"; } $ReportContent .= "\n"; } // 乱码请注释 // $ReportContent = mb_convert_encoding($ReportContent, "gb2312", "utf-8"); die($ReportContent); // 框架内推荐使用die }

方法二的大容量

 public function more_openexcel() { header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachement;filename=Haoyunyun_" . date("Ymd") . ".xls"); // 表头 $ReportArr[] = ['ID', '名称', '地址', '电话', 'p']; Db::table('info2')->chunk(100, function ($datas) use (&$ReportArr) { foreach ($datas as $data) { $ReportArr[] = [$data['id'], $data['name'], $data['address'], $data['mobile'], $data['p']]; } }); $ReportContent = ''; $num1 = count($ReportArr); for ($i = 0; $i < $num1; $i++) { $num2 = count($ReportArr[$i]); for ($j = 0; $j < $num2; $j++) { $ReportContent .= '"' . $ReportArr[$i][$j] . '"' . "\t"; } $ReportContent .= "\n"; } // $ReportContent = mb_convert_encoding($ReportContent, "gb2312", "utf-8"); die($ReportContent); // 框架内推荐使用die }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值