📖 File Reader
<?php
namespace app\common;
use app\api\common\Common_user;
use app\BaseController;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Helper\Html as HtmlHelper;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use think\facade\Db;
use think\facade\View;
/*导出导入处理*/
class Common_excel extends BaseController
{
/**
* 导入处理(老版本)
* @param $file 文件地址
*/
static function daoru($file)
{
ini_set('memory_limit','2000072M');
set_time_limit(0);
$exts = substr(strrchr($file, '.'), 1);
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
include("extend/PHPExcel/PHPExcel.php");
//创建PHPExcel对象,注意,不能少了\
$PHPExcel = new \PHPExcel();
//如果excel文件后缀名为.xls,导入这个类
if ($exts == 'xls') {
$PHPReader = new \PHPExcel_Reader_Excel5();
} else if ($exts == 'xlsx') {
$PHPReader = new \PHPExcel_Reader_Excel2007();
} else{
$data = [
'code'=>400,
'msg'=>'文件格式错误',
];
return $data;
}
//载入文件
$PHPExcel = $PHPReader->load($file);
//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
$currentSheet = $PHPExcel->getSheet(0);
//获取总列数
$allColumn = $currentSheet->getHighestColumn();
//获取总行数
$allRow = $currentSheet->getHighestRow();
//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
//从哪列开始,A表示第一列
for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
//数据坐标
$address = $currentColumn . $currentRow;
//读取到的数据,保存到数组$arr中
$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
}
}
$data = [
'code'=>200,
'msg' =>'ok',
'list'=>$data,
];
return $data;
}
/**
* 导入处理
* @param string $filename 文件地址
* @param string $column 大写导入追后一列(不填则查询所有列)
* @throws \PhpOffice\PhpSpreadsheet\Exception
*/
static function enter($filename='',$column='')
{
//$filename = "/www/wwwroot/wuliu.gkktc.cn/public/uploads/file/20240418/37ce4fb678138e7dd8650a96656deff7.xlsx";
ini_set('memory_limit','20072M');
set_time_limit(0);
$file_name = 'office_img2/'.date("Ymd",time());//存储图片文件夹名称
$imageFilePath = dirname(dirname(dirname(__FILE__))).'/public/uploads/'.$file_name.'/'; //图片本地存储的路径
if (!file_exists($imageFilePath)) { //如果目录不存在则递归创建
mkdir($imageFilePath, 0777, true);
}
$exts = substr(strrchr($filename, '.'), 1);
if ($exts == 'xls') {
$objRead = IOFactory::createReader('Xls');
} else if ($exts == 'xlsx') {
$objRead = IOFactory::createReader('Xlsx');
}else{
$data = [
'code'=>400,
'msg'=>'文件格式错误',
];
return $data;
}
$objSpreadsheet = $objRead->load($filename);
$objWorksheet = $objSpreadsheet->getSheet(0);
$row_num = $objWorksheet->getHighestRow(); //获取总行数
$col_num = $objWorksheet->getHighestColumn(); //获取总列数
if ($row_num >= 100000){
$data = [
'code'=>400,
'msg'=>'导入数据不可大于100000行',
];
return $data;
}
if(!empty($column)){
$cellRange = 'A1:'.$column.$row_num;
$data_list = $objWorksheet->rangeToArray($cellRange, false, true, true, true);
}else{
$data_list = $objWorksheet->toArray(false, true, true, true);
}
$data_img = [];//纯图片数据
foreach ($objWorksheet->getDrawingCollection() as $drawing) {
list($startColumn, $startRow) = Coordinate::coordinateFromString($drawing->getCoordinates());
$imageFileName = $drawing->getCoordinates().'_'.Common_user::suijishu(6).'_'. mt_rand(1000, 9999).time();
if ($exts == 'xlsx'){
$drawing_type = $drawing->getExtension();
}else if($exts == 'xls'){
$drawing_type = $drawing->getMimeType();
}
switch ($drawing_type) {
case 'jpg':
case 'jpeg':
$imageFileName .= '.jpg';
$source = imagecreatefromjpeg($drawing->getPath());
imagejpeg($source, $imageFilePath . $imageFileName);
break;
case 'gif':
$imageFileName .= '.gif';
$source = imagecreatefromgif($drawing->getPath());
imagegif($source, $imageFilePath . $imageFileName);
break;
case 'png':
$imageFileName .= '.png';
$source = imagecreatefrompng($drawing->getPath());
imagepng($source, $imageFilePath . $imageFileName);
break;
case 'image/png':
$imageFileName .= '.png';
$source = $drawing->getImageResource();
imagepng($source, $imageFilePath . $imageFileName);
break;
case 'image/jpeg':
$imageFileName .= '.jpg';
$source = $drawing->getImageResource();
imagepng($source, $imageFilePath . $imageFileName);
break;
}
$data_img[$startColumn.$startRow][] = '/public/uploads/'.$file_name.'/'.$imageFileName;
$data_list[$startRow][$startColumn][] = '/public/uploads/'.$file_name.'/'.$imageFileName;
}
$data = [
'code'=>200,
'data_list'=>$data_list,
];
return $data;
}
/**
* 导出处理
* @param array $header 设置表格的表头数据
* @param bool $type 保存文件类型
* @param array $data 数据
* @param string $fileName 文件名称
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
static function export($header = [], $type = true, $data = [], $fileName = "1910")
{
ini_set('memory_limit','2000072M');
set_time_limit(0);
// 实例化类
$preadsheet = new Spreadsheet();
// 创建sheet
$sheet = $preadsheet->getActiveSheet();
// 循环设置表头数据
foreach ($header as $k => $v) {
$sheet->setCellValue($k, $v);
}
/*合并单元格并设置标题 格式:$data = ['测试合并信息', 'A1:F1', 'A1', 'merge']; (如果是合并列 下标用4merge_lie 下标1可不填)*/
/*导出图片格式:$data = ['图片数组(全路径)', 'A1', '1', 'img']; */
$data_daochu = [];
foreach ($data as $v) {
$v_count = count($v);
if ($v_count == 4){
if ($v[3] == 'merge' || $v[3] == 'merge_lie') {
$sheet->mergeCells($v[1]);
$sheet->setCellValue($v[2],$v[0]);
}
if ($v[3] == 'img'){
$img_data = $v[0];
foreach ($img_data as $k2 => $v2){
if ($k2 == 0){
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX(3)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}else{
$shuju = $k2 * 60;
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX($shuju)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}
}
}
if ($v[3] != 'merge' && $v[3] != 'merge_lie' && $v[3] != 'img'){
$data_daochu[] = $v;
}
}else{
$data_daochu[] = $v;
}
}
// 生成数据
$sheet->fromArray($data_daochu, null, "A2");
/*自定义样式处理*/
// $hang_i_jiewei = count($data_daochu)+5;//总行数
// //设置字体大小并设置字体
// $sheet->getStyle("A1:M1")->getFont()->setBold(true)->setName('微软雅黑')->setSize(12);
// //设置字体颜色
// $sheet->getStyle('A1:M1')->getFont()->getColor()->setRGB('FFFFFFFF');
// //设置单元格背景色
// //$sheet->getStyle('A1:M1')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB(Color::COLOR_GREEN);
// //设置单元格宽度
// $sheet->getDefaultColumnDimension()->setWidth(12);
// $sheet->getColumnDimension('B')->setWidth(25);
// //设置行高
// //$sheet->getDefaultRowDimension()->setRowHeight(12,'mm');
// $sheet->getRowDimension(1)->setRowHeight(13, 'mm');
// for ($i=2;$i<=$hang_i_jiewei;$i++ ){
// $sheet->getRowDimension($i)->setRowHeight(8, 'mm');
// }
// //设置居中
// $sheet->getStyle("A1:M".$hang_i_jiewei)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
// $sheet->getStyle("A1:M".$hang_i_jiewei)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
// //获取单元格样式并设置自动换行
// $styleArray = [
// 'alignment' => [
// 'wrapText' => true, // 设置自动换行
// 'horizontal' => Alignment::HORIZONTAL_LEFT, // 左对齐
// ],
// ];
// $sheet->getStyle('J2:J'.$hang_i_jiewei)->applyFromArray($styleArray);
// //设置单元格边框
// $sheet->getStyle('A1:M'.$hang_i_jiewei)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
// //设置换行
// $sheet->getStyle('A1:M'.$hang_i_jiewei)->getAlignment()->setWrapText(true);
// 设置下载与后缀
if ($type) {
header("Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
$type = "Xlsx";
$suffix = "xlsx";
} else {
header("Content-Type:application/vnd.ms-excel");
$type = "Xls";
$suffix = "xls";
}
ob_end_clean();//清楚缓存区
// 激活浏览器窗口
header("Content-Disposition:attachment;filename=$fileName.$suffix");
//缓存控制
header("Cache-Control:max-age=0");
// 调用方法执行下载
$writer = IOFactory::createWriter($preadsheet, $type);
// 数据流
$writer->save("php://output");
}
/**
* 导出处理-订单信息
* @param array $header 设置表格的表头数据
* @param bool $type 保存文件类型
* @param array $data 数据
* @param string $fileName 文件名称
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
static function export_order($header = [], $type = true, $data = [], $fileName = "1910")
{
ini_set('memory_limit','2000072M');
set_time_limit(0);
// 实例化类
$preadsheet = new Spreadsheet();
// 创建sheet
$sheet = $preadsheet->getActiveSheet();
// 循环设置表头数据
foreach ($header as $k => $v) {
$sheet->setCellValue($k, $v);
}
/*合并单元格并设置标题 格式:$data = ['测试合并信息', 'A1:F1', 'A1', 'merge']; (如果是合并列 下标用4merge_lie 下标1可不填)*/
/*导出图片格式:$data = ['图片数组(全路径)', 'A1', '1', 'img']; */
$data_daochu = [];
foreach ($data as $v) {
$v_count = count($v);
if ($v_count == 4){
if ($v[3] == 'merge' || $v[3] == 'merge_lie') {
$sheet->mergeCells($v[1]);
$sheet->setCellValue($v[2],$v[0]);
}
if ($v[3] == 'img'){
$img_data = $v[0];
foreach ($img_data as $k2 => $v2){
if ($k2 == 0){
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX(3)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}else{
$shuju = $k2 * 60;
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX($shuju)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}
}
}
if ($v[3] != 'merge' && $v[3] != 'merge_lie' && $v[3] != 'img'){
$data_daochu[] = $v;
}
}else{
$data_daochu[] = $v;
}
}
// 生成数据
$sheet->fromArray($data_daochu, null, "A2");
/*自定义样式处理*/
$hang_i_jiewei = count($data_daochu)+5;//总行数
//设置字体大小并设置字体
$sheet->getStyle("A1:O1")->getFont()->setBold(true)->setName('微软雅黑')->setSize(12);
//设置单元格背景色
$sheet->getStyle('A1:O1')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('77d9d0');
//设置单元格宽度
$sheet->getDefaultColumnDimension()->setWidth(20);
$sheet->getColumnDimension('A')->setWidth(10);//编号
$sheet->getColumnDimension('B')->setWidth(25);//订单编号
$sheet->getColumnDimension('F')->setWidth(35);//收货地址
$sheet->getColumnDimension('J')->setWidth(35);//产品名称
$sheet->getColumnDimension('K')->setWidth(15);//产品缩略图
$sheet->getColumnDimension('N')->setWidth(30);//订单备注
//设置行高
//$sheet->getDefaultRowDimension()->setRowHeight(8,'mm');
$sheet->getRowDimension(1)->setRowHeight(13, 'mm');
for ($i=2;$i<=$hang_i_jiewei;$i++ ){
//$sheet->getRowDimension($i)->setRowHeight(8, 'mm');
}
//设置居中
$sheet->getStyle("A1:O".$hang_i_jiewei)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle("A1:O".$hang_i_jiewei)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
//获取单元格样式并设置自动换行
$styleArray = [
'alignment' => [
'wrapText' => true, // 设置自动换行
'horizontal' => Alignment::HORIZONTAL_LEFT, // 左对齐
],
];
$sheet->getStyle('J2:J'.$hang_i_jiewei)->applyFromArray($styleArray);
$sheet->getStyle('F2:F'.$hang_i_jiewei)->applyFromArray($styleArray);
$sheet->getStyle('N2:N'.$hang_i_jiewei)->applyFromArray($styleArray);
//设置单元格边框
$sheet->getStyle('A1:O'.$hang_i_jiewei)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
// 设置下载与后缀
if ($type) {
header("Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
$type = "Xlsx";
$suffix = "xlsx";
} else {
header("Content-Type:application/vnd.ms-excel");
$type = "Xls";
$suffix = "xls";
}
ob_end_clean();//清楚缓存区
// 激活浏览器窗口
header("Content-Disposition:attachment;filename=$fileName.$suffix");
//缓存控制
header("Cache-Control:max-age=0");
// 调用方法执行下载
$writer = IOFactory::createWriter($preadsheet, $type);
// 数据流
$writer->save("php://output");
}
/**
* 导出处理-提现
* @param array $header 设置表格的表头数据
* @param bool $type 保存文件类型
* @param array $data 数据
* @param string $fileName 文件名称
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
static function export_tixian($header = [], $type = true, $data = [], $fileName = "1910")
{
ini_set('memory_limit','2000072M');
set_time_limit(0);
// 实例化类
$preadsheet = new Spreadsheet();
// 创建sheet
$sheet = $preadsheet->getActiveSheet();
// 循环设置表头数据
foreach ($header as $k => $v) {
$sheet->setCellValue($k, $v);
}
/*合并单元格并设置标题 格式:$data = ['测试合并信息', 'A1:F1', 'A1', 'merge']; (如果是合并列 下标用4merge_lie 下标1可不填)*/
/*导出图片格式:$data = ['图片数组(全路径)', 'A1', '1', 'img']; */
$data_daochu = [];
foreach ($data as $v) {
$v_count = count($v);
if ($v_count == 4){
if ($v[3] == 'merge' || $v[3] == 'merge_lie') {
$sheet->mergeCells($v[1]);
$sheet->setCellValue($v[2],$v[0]);
}
if ($v[3] == 'img'){
$img_data = $v[0];
foreach ($img_data as $k2 => $v2){
if ($k2 == 0){
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX(3)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}else{
$shuju = $k2 * 60;
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX($shuju)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}
}
}
if ($v[3] != 'merge' && $v[3] != 'merge_lie' && $v[3] != 'img'){
$data_daochu[] = $v;
}
}else{
$data_daochu[] = $v;
}
}
// 生成数据
$sheet->fromArray($data_daochu, null, "A2");
/*自定义样式处理*/
$hang_i_jiewei = count($data_daochu)+5;//总行数
//设置字体大小并设置字体
$sheet->getStyle("A1:I1")->getFont()->setBold(true)->setName('微软雅黑')->setSize(12);
//设置单元格背景色
$sheet->getStyle('A1:I1')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('77d9d0');
//设置单元格宽度
$sheet->getDefaultColumnDimension()->setWidth(20);
$sheet->getColumnDimension('A')->setWidth(10);
$sheet->getColumnDimension('D')->setWidth(25);
$sheet->getColumnDimension('E')->setWidth(28);
$sheet->getColumnDimension('H')->setWidth(35);
//设置行高
//$sheet->getDefaultRowDimension()->setRowHeight(12,'mm');
$sheet->getRowDimension(1)->setRowHeight(13, 'mm');
for ($i=2;$i<=$hang_i_jiewei;$i++ ){
$sheet->getRowDimension($i)->setRowHeight(8, 'mm');
}
//设置居中
$sheet->getStyle("A1:I".$hang_i_jiewei)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle("A1:I".$hang_i_jiewei)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
//设置单元格边框
$sheet->getStyle('A1:I'.$hang_i_jiewei)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
// 设置下载与后缀
if ($type) {
header("Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
$type = "Xlsx";
$suffix = "xlsx";
} else {
header("Content-Type:application/vnd.ms-excel");
$type = "Xls";
$suffix = "xls";
}
ob_end_clean();//清楚缓存区
// 激活浏览器窗口
header("Content-Disposition:attachment;filename=$fileName.$suffix");
//缓存控制
header("Cache-Control:max-age=0");
// 调用方法执行下载
$writer = IOFactory::createWriter($preadsheet, $type);
// 数据流
$writer->save("php://output");
}
/**
* 导出处理-充值
* @param array $header 设置表格的表头数据
* @param bool $type 保存文件类型
* @param array $data 数据
* @param string $fileName 文件名称
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
static function export_chongzhi($header = [], $type = true, $data = [], $fileName = "1910")
{
ini_set('memory_limit','2000072M');
set_time_limit(0);
// 实例化类
$preadsheet = new Spreadsheet();
// 创建sheet
$sheet = $preadsheet->getActiveSheet();
// 循环设置表头数据
foreach ($header as $k => $v) {
$sheet->setCellValue($k, $v);
}
/*合并单元格并设置标题 格式:$data = ['测试合并信息', 'A1:F1', 'A1', 'merge']; (如果是合并列 下标用4merge_lie 下标1可不填)*/
$data_daochu = [];
foreach ($data as $v) {
$v_count = count($v);
if ($v_count == 4){
if ($v[3] == 'merge' || $v[3] == 'merge_lie') {
$sheet->mergeCells($v[1]);
$sheet->setCellValue($v[2],$v[0]);
}
if ($v[3] != 'merge' && $v[3] != 'merge_lie'){
$data_daochu[] = $v;
}
if ($v[3] == 'img'){
$img_data = $v[0];
foreach ($img_data as $k2 => $v2){
if ($k2 == 0){
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX(3)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}else{
$shuju = $k2 * 60;
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath($v2)->setHeight(32)->setCoordinates($v[1])->setOffsetX($shuju)->setOffsetY(3);
$drawing->setRotation(0);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($sheet);
$sheet->getRowDimension($v[2])->setRowHeight(10, 'mm');//行高
}
}
}
}else{
$data_daochu[] = $v;
}
}
// 生成数据
$sheet->fromArray($data_daochu, null, "A2");
/*自定义样式处理*/
$hang_i_jiewei = count($data_daochu)+5;//总行数
//设置字体大小并设置字体
$sheet->getStyle("A1:G1")->getFont()->setBold(true)->setName('微软雅黑')->setSize(12);
//设置单元格背景色
$sheet->getStyle('A1:G1')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('77d9d0');
//设置单元格宽度
$sheet->getDefaultColumnDimension()->setWidth(20);
$sheet->getColumnDimension('A')->setWidth(10);
$sheet->getColumnDimension('F')->setWidth(35);
//设置行高
//$sheet->getDefaultRowDimension()->setRowHeight(12,'mm');
$sheet->getRowDimension(1)->setRowHeight(13, 'mm');
for ($i=2;$i<=$hang_i_jiewei;$i++ ){
$sheet->getRowDimension($i)->setRowHeight(8, 'mm');
}
//设置居中
$sheet->getStyle("A1:G".$hang_i_jiewei)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle("A1:G".$hang_i_jiewei)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
//设置单元格边框
$sheet->getStyle('A1:G'.$hang_i_jiewei)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
// 设置下载与后缀
if ($type) {
header("Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
$type = "Xlsx";
$suffix = "xlsx";
} else {
header("Content-Type:application/vnd.ms-excel");
$type = "Xls";
$suffix = "xls";
}
ob_end_clean();//清楚缓存区
// 激活浏览器窗口
header("Content-Disposition:attachment;filename=$fileName.$suffix");
//缓存控制
header("Cache-Control:max-age=0");
// 调用方法执行下载
$writer = IOFactory::createWriter($preadsheet, $type);
// 数据流
$writer->save("php://output");
}
}