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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland 激活码2021【2021最新】

    (goland 激活码2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html9K2BT69C4S-eyJsaWNlbnNlSWQi…

    2022年3月28日
    83
  • java队列Queue方法[通俗易懂]

    java队列Queue方法[通俗易懂]Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue,ArrayBlockingQueue,ConcurrentLinkedQueue,LinkedB

    2022年7月16日
    19
  • arm按键控制led灯闪烁(嵌入式按键实验报告)

    实验六键盘控制LED灯实验1实验目的(1)通过实验掌握中断式键盘控制与设计方法;(2)熟练编写S3C2410中断服务程序。2实验设备(1)S3C2410嵌入式开发板,JTAG仿真器。(2)软件:PC机操作系统WindowsXP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序。3实验内容编写中断处理程序,处理一个键盘中断,并在串口打印中断及按键显示信息。4实验步骤(1)参照模板工程,新…

    2022年4月16日
    124
  • 阻塞与非阻塞的区别verilog_如何理解阻塞和非阻塞

    阻塞与非阻塞的区别verilog_如何理解阻塞和非阻塞简单点说:阻塞就是干不完不准回来,非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧…比如你调用send函数发送一定的Byte,在系统内部s

    2022年8月1日
    10
  • xmind 快捷键(实用总结)

    xmind 快捷键(实用总结)XMind实用总结建议收藏常用Ctrl+Shift+L快捷键助手 Ctrl+Home返回中心主题 Enter插入主题 Tab插入子主题 F2编辑主题 F3添加/编辑标签 F4添加/编辑备注 F6下钻 Shift+F6上钻 Delete删除 Ctrl+]插入摘要 Ctrl+I插入图片 Ctrl+Shift+H插入超链接 Ctrl+1,2…

    2022年5月3日
    613
  • 用Python自动办公,做职场高手(完结)

    用Python自动办公,做职场高手(完结)

    2022年2月12日
    44

发表回复

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

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