namespace App\Http\Controllers;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
class ExcelController extends Controller
{
const tableHeader0 = [
'title1',
'title2',
'title3'
];
const tableHeader1 = [
'title4',
'title5',
'title6'
];
const tableHeader2 = [
'title7',
'title8',
'title9'
];
public function export(Request $request)
{
$data = Product::query()->selectRaw('id, url, title')->get();
$tableHeader[0] = ModelEnglandClothing::tableHeader0;
$tableHeader[1] = ModelEnglandClothing::tableHeader1;
$tableHeader[2] = ModelEnglandClothing::tableHeader2;
$this->outdata($tableHeader, $data);
}
/**
* Excel导出,TODO 可继续优化
*
* @param array tableHeader 表头
* @param array $data 导出数据
* @return boolean true: 成功; false: 失败;
*/
public function outdata($tableHeader = [], $data = []) {
// 表头需要写多少列
$row_count_table_header = count($tableHeader[0]);
// 表头需要写多少行
$column_count_table_header = count($tableHeader);
// 数据
$column_count_data = count($data);
try {
set_time_limit(0);
/** @var Spreadsheet $objSpreadsheet */
$objSpreadsheet = app(Spreadsheet::class);
/* 设置Excel Sheet */
$activeSheet = $objSpreadsheet->setActiveSheetIndex(0);
/* 写表头 三行 *//* 列数超过26,亲测可用 */
for ($i = 0; $i < $row_count_table_header; $i++) {
for ($j = 0; $j < $column_count_table_header; $j++) {
$pCoordinate = Coordinate::stringFromColumnIndex($i + 1) . '' . ($j + 1);
$pValue = $tableHeader[$j][$i];
$activeSheet->setCellValueExplicit($pCoordinate, $pValue, DataType::TYPE_STRING);
}
}
/** 写数据 */
$j = 4; // 第 4 行,开始写起
for ($i = 0; $i < $column_count_data; $i++) {
// 第 4 行, 第 1 列 写 id. Excel对应格式: [A4]
$pCoordinate = Coordinate::stringFromColumnIndex(1) . '' . $j;
$pValue = $data[$i]->id;
$activeSheet->setCellValueExplicit($pCoordinate, $pValue, DataType::TYPE_STRING);
// 第 4 行, 第 10 列 写 url. Excel对应格式: [J4]
$pCoordinate = Coordinate::stringFromColumnIndex(10) . '' . $j;
$pValue = $data[$i]->url;
$activeSheet->setCellValueExplicit($pCoordinate, $pValue, DataType::TYPE_STRING);
// 第 4 行, 第 15 列 写 title. Excel对应格式: [O4]
$pCoordinate = Coordinate::stringFromColumnIndex(15) . '' . $j;
$pValue = $data[$i]->title;
$activeSheet->setCellValueExplicit($pCoordinate, $pValue, DataType::TYPE_STRING);
$j++;
}
/* 直接导出Excel,无需保存到本地,输出07Excel文件 */
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header(
"Content-Disposition:attachment;filename=" . iconv(
"utf-8",
"GB2312//TRANSLIT",
(date('YmdHis') . '.xlsx') // 文件名:当前时间
));
//禁止缓存
header('Cache-Control: max-age=0');
$savePath = 'php://output';
ob_clean();
ob_start();
$objWriter = IOFactory::createWriter($objSpreadsheet, 'Xlsx');
$objWriter->save($savePath);
/* 释放内存 */
$objSpreadsheet->disconnectWorksheets();
unset($objSpreadsheet);
ob_end_flush();
return true;
} catch (\Exception $e) {
dd($e->getMessage());
return false;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
laravel框架:phpoffice/phpspreadsheet/phpexcel 点击按钮,导出/下载 EXCEL.dem...

共3个文件
php:3个


温馨提示
(PS:刚转PHP!) 用了最新版的phpspreadsheet(phpexcel的下一个版本), 关于PHP导出EXCEL的DEMO, laravel框架; 前台 index.blade.php; 路由 routes/web.php; 控制器 ExcelController;
资源推荐
资源详情
资源评论










格式:pdf 资源大小:48.0KB 页数:2




















收起资源包目录











共 3 条
- 1
资源评论

- zhumengyangi2020-08-07我的C币啊!
- crystaljmh2021-04-06不是完整版本

DnvFlf226
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 华北落叶松边材透水性与叶面积空间分布的相关性的探讨.pdf
- 住宅楼屋顶改造工程施工合同.doc
- 《内部竞聘操作流程及考核大全》含全套表格.pdf
- 大桥工程拱板预制安装劳务承包合同.doc
- 工业管道工程计价.ppt
- 海外业务子体系路面队工作指导书范本.pdf
- 电器安装工程技术交底.doc
- 别墅外墙干挂石及钢结构工程标准.doc
- 企业高性能铝合金项目申请报告.doc
- 常州市“金龙杯”优质工程奖申报表.doc
- 注浆减阻详解p.doc
- 热电厂中低压管道施工组织设计.doc
- 螺杆式压缩机与离心式压缩机特点对比.doc
- 玻璃纤维增强水泥预制构件技术资料.doc
- 图乘法-zjs.ppt
- 电梯采购安装合同.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
