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)
上一篇 2025年12月12日 上午9:43
下一篇 2025年12月12日 上午10:15


相关推荐

  • 安卓端口占用_查看端口号命令

    安卓端口占用_查看端口号命令android查看端口号被占用

    2022年7月27日
    7
  • HTML超链接使用代码

    HTML超链接使用代码HTML超链接(链接)HTML使用标签来设置超文本链接。在标签中使用了href属性来描述链接的地址。超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。默认情况下,链接将以以下形式出现在浏览器中:一个未访问过的链接显示为蓝色字体并带有下划线。访问过的链接显…

    2022年7月13日
    18
  • 学计算机的男生喜欢什么样的女生,it男喜欢什么样的女孩

    学计算机的男生喜欢什么样的女生,it男喜欢什么样的女孩喜欢什么样的女孩子每个男生的定义都不一样,有些男生更喜欢性感魅惑的御姐范儿气质,当然,也有很多男生偏向甜美可爱风格的。那么it男喜欢什么样的女孩子呢?来源:图虫作者:79054344888189459虽然很多花心的男生喜欢的女孩子的类型是不固定的,而且一般都是见一个爱一个的,但实际上很多男生的心里对于自己喜欢的女孩子的类型是很清楚的,所以就算有女生喜欢他们,他们也不反感,但是接受却是一件困难的事情…

    2022年7月25日
    23
  • AutoEventWireup指令分析

    AutoEventWireup指令分析指令:指定当页和用户控件编译器处理ASP.NETWeb窗体页(.aspx)和用户控件(.ascx)文件时所使用的设置。在编译时发生作用,有些是如在asp.net2.0中将 后产生       protectedoverrideboolSupportAutoEvents{           get{               returnfalse; 

    2022年5月8日
    58
  • scala的隐式转换学习总结(详细)

    scala的隐式转换学习总结(详细)scala隐式转换,详细介绍

    2022年10月11日
    3
  • Sklearn实现普通最小二乘法

    Sklearn实现普通最小二乘法LinearRegres 拟合一个带有系数 w w1 wp w w 1 w p w w1 wp 的线性模型 使得数据集实际观测数据和预测数据之间的残差平方和最小 其数学表达式为 minw Xw y 22min w Xw y 2 2minw Xw y 22 LinearRegres 会调用 fit 方法来拟合数组 X y 并且将线性模型的系数 w 存储在其成员变量 coef 中 gt gt gt fromsklearn lin

    2026年3月26日
    2

发表回复

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

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