PhpSpreadsheet 学习和使用

PhpSpreadsheet 学习和使用1、安装composerrequirephpoffice/phpspreadsheet2、usePhpOffice\PhpSpreadsheet\Spreadsheet;usePhpOffice\PhpSpreadsheet\Writer\Xlsx;usePhpOffice\PhpSpreadsheet\Style\Alignment;usePhpOffice\Ph…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、安装

 composer require phpoffice/phpspreadsheet

2、
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Font;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\IOFactory;
3、数据库导出到excel表中
//导出测试
public function daochu()
{
    $spreadsheet = new Spreadsheet();
    $worksheet = $spreadsheet->getActiveSheet();
    //设置工作表标题名称
    $worksheet->setTitle('车型品牌');

    //表头
    //设置单元格内容
    $worksheet->setCellValueByColumnAndRow(1, 1, '车型品牌表');
    $worksheet->setCellValueByColumnAndRow(1, 2, 'ID');
    $worksheet->setCellValueByColumnAndRow(2, 2, '品牌名');
    $worksheet->setCellValueByColumnAndRow(3, 2, '图片');
    $worksheet->setCellValueByColumnAndRow(4, 2, '状态');

    //合并单元格
    $worksheet->mergeCells('A1:D1');

    //字体设置
    $styleArray = [
        'font' => [
            'bold' => true,  //字体加粗
            'color' => [ 'rgb' => 'FF6A6A' ], //字体颜色
            'strikethrough' => true, //删除线
            'italic' => true, //倾斜
            'underline' => Font::UNDERLINE_DOUBLE,
        ],
        'alignment' => [
            'horizontal' => Alignment::HORIZONTAL_CENTER,
        ],
    ];

    //设置单元格样式
    $worksheet->getStyle('A1')->applyFromArray($styleArray)->getFont()->setSize(28);

    $worksheet->getStyle('A2:D2')->applyFromArray($styleArray)->getFont()->setSize(14);

    //设置字体颜色
    //$worksheet->getStyle('B2')->getFont()->getColor()->applyFromArray(['rgb' => 'C0FF3E']);
    //背景色
    //$worksheet->getStyle('B2')->getFill()->applyFromArray( [ 'fillType' => Fill::FILL_GRADIENT_LINEAR, 'rotation' => 0, 'startColor' => [ 'rgb' => '000000' ], 'endColor' => [ 'argb' => 'FFFFFFFF' ] ] );
    //设置单元格 自动宽度显示
    $spreadsheet->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);

    $rows = Db::name('cartype_logo')->select();
    $len = Db::name('cartype_logo')->count();
    $j = 0;
    for ($i=0; $i < $len; $i++) {
        $j = $i + 3; //从表格第3行开始
        $worksheet->setCellValueByColumnAndRow(1, $j, $rows[$i]['logo_id']);
        $worksheet->setCellValueByColumnAndRow(2, $j, $rows[$i]['logo_name']);
        $worksheet->setCellValueByColumnAndRow(3, $j, $rows[$i]['logo_img']);
        $worksheet->setCellValueByColumnAndRow(4, $j, $rows[$i]['status']);
    }

    $styleArrayBody = [
        'borders' => [
            'allBorders' => [
                'borderStyle' => Border::BORDER_THIN,
                'color' => ['argb' => '666666'],
            ],
        ],
        'alignment' => [
            'horizontal' => Alignment::HORIZONTAL_CENTER,
        ],
    ];

    $total_rows = $len + 2;
    //添加所有边框/居中
    $worksheet->getStyle('A1:D'.$total_rows)->applyFromArray($styleArrayBody);

    $filename = '品牌表.xlsx';
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$filename.'"');
    header('Cache-Control: max-age=0');

    $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
    $writer->save('php://output');
}
3、excel导入数据库表汇中
//导入测试
public function daoru()
{
    $reader = IOFactory::createReader('Xls');
    $reader->setReadDataOnly(TRUE);
    $spreadsheet = $reader->load('C:\Users\Administrator\Desktop\logo.xls'); //载入excel表格

    $worksheet = $spreadsheet->getActiveSheet();
    $highestRow = $worksheet->getHighestRow(); // 总行数

    $lines = $highestRow - 1;

    if ($lines <= 0) {
        exit('Excel表格中没有数据');
    }

    $new = [];
    for ($row = 2; $row <= $highestRow; ++$row) {

        $new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名
        $new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //图片地址

        $new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];

    }
$new = [];
for ($row = 2; $row <= $highestRow; ++$row) {

    $new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名
    $new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //图片地址

    $new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];

}
foreach ($new as $k => $v) {
 
        $data['logo_name'] = $v[0];
        $data['logo_img'] = $v[1];
        //var_dump($data); die;
        Db::name('cartype_logo')->insert($data);
    
}

echo ‘ok’;

}

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192586.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • json几种格式_json的格式

    json几种格式_json的格式JSON的三种格式一、JSON的全称JSON的全称是JavaScriptObjectNotation二、为什么需要JSONJSON有三种格式,每一种写法都和JS中的数据类型很像,可以很轻松的和JS中的数据类型互相转换三、JSON的三种格式(一)、简单值的形式:JSON的简单值的格式对应着JS中的基础数据类型:数字字符串布尔值注意事项:JSON中没有undefinedJSON中的字符串必须使用双引号JSON中是不能用注释的(二)、对象形式:对应着JS中的对象注意事项:

    2022年10月12日
    0
  • Java开源报表工具 JasperReports

    Java开源报表工具 JasperReportsJasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。 授权协议:LGPL…

    2022年10月20日
    0
  • unity射击小游戏,第一人称摄像机实现

    unity射击小游戏,第一人称摄像机实现

    2021年3月12日
    168
  • 【DB】HBase的基本概念

    【DB】HBase的基本概念

    2022年2月3日
    44
  • 你尚未连接代理服务器可能有问题或地址不正确(如何查看代理服务器ip)

    在进行一下操作室不需保证你的网线是接通的(你的右下角应该显示的是,而不是)当你的电脑显示:“无法连接到安全检查代理服务器,本地IP地址非法”,解决办法分一下几步:第一步:先检查你的ARP防火墙配置的是否正确,如果正确,进行下一步;第二部:检查你的IP地址和默认网关是否正确,无误后,进行下一步;第三部:检查你的无线网卡是否禁用了,如果禁用了,进行下一步;第四部:在DOS命令中输入

    2022年4月11日
    979
  • c/c++成长之捷径 C/C++学习资料大全

    c/c++成长之捷径 C/C++学习资料大全socket协议三次握手与结束连接客户端代码:#include#include#include//forbzero#include//forsocketaddr_in#include#include#include#definePORT5050//端口号#defineMAXLEN_FOR_DATA

    2022年10月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号