YiI2+ecshop phpexcel生成下载excel订单

前端代码 注:需引入jquery

html 复制代码
<button id="downloadBtn" class="download-btn">下载订单</button>
                        <script>
                            document.getElementById('downloadBtn').addEventListener('click', function(event) {
                                event.preventDefault();
                                // 自定义逻辑 例如:发送AJAX请求或显示下载提示
                                const key_words = $('input[name="key_words"]').val();
                                const end_time = $('input[name="end_time"]').val();
                                const begin_time = $('input[name="begin_time"]').val();

                                // 获取可能需要传递的参数
                                const params = {
                                    key_words: key_words,  // 示例参数
                                    end_time: end_time,
                                    begin_time: begin_time,
                                    is_down: 1
                                };

                                // 构建查询字符串
                                const queryString = $.param(params);
                                console.log(queryString)
                                // 使用AJAX发送GET请求
                                $.ajax({
                                    url: '',  // 替换为你的下载API地址
                                    type: 'GET',
                                    data: params,
                                    xhrFields: {
                                        responseType: 'blob'  // 重要:告诉jQuery我们期望接收二进制数据
                                    },
                                    success: function(data, status, xhr) {
                                        console.log(data)
                                        // 从响应头获取文件名
                                        const filename = xhr.getResponseHeader('Content-Disposition')
                                            ? xhr.getResponseHeader('Content-Disposition').split('filename=')[1]
                                            : 'download_' + new Date().getTime() + '.file';

                                        // 创建Blob对象
                                        const blob = new Blob([data]);

                                        // 创建下载链接
                                        const link = document.createElement('a');
                                        link.href = window.URL.createObjectURL(blob);
                                        link.download = decodeURIComponent(filename);

                                        // 触发下载
                                        document.body.appendChild(link);
                                        link.click();

                                        // 清理
                                        setTimeout(function() {
                                            document.body.removeChild(link);
                                            window.URL.revokeObjectURL(link.href);
                                        }, 100);
                                        return false;
                                    },
                                    error: function(xhr, status, error) {
                                        alert('下载失败: ' + (xhr.responseJSON && xhr.responseJSON.message || error));
                                    },
                                    complete: function() {
                                    }
                                });
                            });
                        </script>

后端:中间的内容生成部分已省略

php 复制代码
            ob_clean();
            ob_start();
            $PHPExcel = new PHPExcel();

            $PHPExcel->setActiveSheetIndex(0);
            $sheet = $PHPExcel->getActiveSheet();
            //设置表头/内容
            $sheet->setCellValue('A1', '订单编号');
            //设置行宽
            $PHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
            //设置行高
            $sheet->getRowDimension(($key+2))->setRowHeight(45);
            //设置换行  将PHP_EOL转成换行
            $sheet->getStyle('C'.($key+2))->getAlignment()->setWrapText(true);

            $Writer = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');


            $Writer->save('php://output');


            $excelContent = ob_get_clean();

            $timestamp = date('Ymd_His'); // 格式:年月日_时分秒
            $filename =  "系统订单_".$timestamp.".xlsx";
            $filename = str_replace('+', '%20', urlencode($filename));

            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment; filename='.$filename);
            header('Content-Length: ' . strlen($excelContent));
            echo $excelContent;
            exit;
相关推荐
专注VB编程开发20年8 小时前
OpenXml、NPOI、EPPlus、Spire.Office组件对EXCEL ole对象附件的支持
前端·.net·excel·spire.office·npoi·openxml·spire.excel
程序视点12 小时前
「Excel文件批量加密与合并工具推荐」高效办公必备神器 - 程序视点
excel
掉鱼的猫14 小时前
老码农教你:Solon + EasyExcel 导出工具
java·excel
带刺的坐椅15 小时前
老码农教你:Solon + EasyExcel 导出工具
java·excel·solon·easyexcel
米欧19 小时前
使用luckysheet在线处理复杂表格
前端·excel·vite
海上生明月丿20 小时前
Day12 数据统计-Excel报表
excel
偷心伊普西隆2 天前
Python Excel 通用筛选函数
python·excel·pandas
嗝屁小孩纸2 天前
使用EasyExcel自定义导出表格
java·excel
CodeCraft Studio2 天前
Excel处理控件Aspose.Cells教程:使用Python将 Excel 转换为 NumPy
python·excel·numpy·aspose·数据表格·aspose.cells·excel文档格式转换
liuxizhen20092 天前
Excel中运行VB的函数
excel