2024年PHP使用PhpSpreadsheet操作Excel_phpspreadsheet官网,15个经典面试问题及回答思路

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


###### 4、单元格格式


* getNumberFormat 获取格式
* setFormatCode 设置格式



<?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','2019-10-10 10:10:10'); $sheet->setCellValue('A2','2019-10-10 10:10:10'); $sheet->getStyle('A2')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT\_DATE\_YYYYMMDD2); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` * setWrapText 设置文本里的\n符合为:换行 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1',"欧阳克\n黄蓉"); $sheet->getStyle('A1')->getAlignment()->setWrapText(true); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` * getHyperlink 获取单元格链接 * setUrl 设置单元格链接 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','www.php.cn'); $sheet->getCell('A1')->getHyperlink()->setUrl('http://www.php.cn'); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` #### 四、批量操作 ###### 1、使用公式 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','10'); $sheet->setCellValue('B1','15'); $sheet->setCellValue('C1','20'); $sheet->setCellValue('D1','25'); $sheet->setCellValue('E1','30'); $sheet->setCellValue('G1','35'); $sheet->setCellValue('A2', '总数:'); $sheet->setCellValue('B2', '=SUM(A1:G1)'); $sheet->setCellValue('A3', '平均数:'); $sheet->setCellValue('B3', '=AVERAGE(A1:G1)'); $sheet->setCellValue('A4', '最小数:'); $sheet->setCellValue('B4', '=MIN(A1:G1)'); $sheet->setCellValue('A5', '最大数:'); $sheet->setCellValue('B5', '=MAX(A1:G1)'); $sheet->setCellValue('A6', '最大数:'); $sheet->setCellValue('B6', '\=MAX(A1:G1)'); // 使用转义字符 # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` ###### 2、批量赋值 * fromArray 从数组中的值填充工作表 * 参数1:数据(数组) * 参数2:去除某个值 * 参数3:从哪个位置开始 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->fromArray( [ [1,'欧阳克','18岁','188cm'], [2,'黄蓉','17岁','165cm'], [3,'郭靖','21岁','180cm'] ], 3, 'A2' ); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` ###### 3、合并单元格 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->mergeCells('A1:B5'); $sheet->getCell('A1')->setValue('欧阳克'); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` 合并后,赋值只能给A1,开始的坐标。 ###### 4、拆分单元格 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->mergeCells('A1:B5'); $sheet->unmergeCells('A1:B5'); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` ###### 5、列和行操作 * getColumnDimension 获取一列 * getWidth 获取一列的宽度 * setWidth 设置一列的宽度 * setAutoSize 设置一列的宽度自动调整 * getDefaultColumnDimension 获取一列的默认值 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); echo $sheet->getColumnDimension('A')->getWidth(); $sheet->getColumnDimension('A')->setWidth(100); $sheet->getColumnDimension('B')->setAutoSize(true); $sheet->getDefaultColumnDimension()->setWidth(1); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` * getRowDimension 获取一行 * getRowHeight 获取一行的高度 * setRowHeight 设置一行的高度 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); echo $sheet->getRowDimension(1)->getRowHeight(); $sheet->getRowDimension(1)->setRowHeight(100); $sheet->getDefaultRowDimension()->setRowHeight(1); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` * getHighestColumn 获取总列数 * getHighestRow 获取总行数 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '欧阳克'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); $sheet->setCellValueByColumnAndRow(1, 3, 2); $sheet->setCellValueByColumnAndRow(2, 3, '黄蓉'); $sheet->setCellValueByColumnAndRow(3, 3, '17岁'); $sheet->setCellValueByColumnAndRow(4, 3, '165cm'); echo $sheet->getHighestColumn(); echo $sheet->getHighestRow(); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` ###### 6、单元格样式 * applyFromArray ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '欧阳克'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); $styleArray = [ // use PhpOffice\PhpSpreadsheet\Style\Alignment; 文件里常量,就是参数 // Alignment::HORIZONTAL\_CENTER 水平居中 // Alignment::VERTICAL\_CENTER 垂直居中 'alignment' => [ // 'horizontal' => Alignment::HORIZONTAL\_CENTER, //水平居中 // 'vertical' => Alignment::VERTICAL\_CENTER, //垂直居中 'horizontal' => 'center', //水平居中 'vertical' => 'center', //垂直居中 ], // use PhpOffice\PhpSpreadsheet\Style\Border; 文件里常量,就是参数 // Border::BORDER\_THICK 边框样式 'borders' => [ 'outline' => [ // 'borderStyle' => '\PhpOffice\PhpSpreadsheet\Style\Border::BORDER\_THICK', 'borderStyle' => 'thick', 'color' => ['argb' => 'FFFF0000'], ], ], 'font' => [ 'name' => '黑体', 'bold' => true, 'size' => 22 ] ]; $sheet->getStyle('A1')->applyFromArray($styleArray); # Xlsx类 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save('1.xlsx'); ``` #### 五、工作薄操作 ###### 1、xlsx 文件下载 * IOFactory::createWriter 写入到文件 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '欧阳克'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); // MIME 协议,文件的类型,不设置,会默认html header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // MIME 协议的扩展 header('Content-Disposition:attachment;filename=1.xlsx'); // 缓存控制 header('Cache-Control:max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); // php://output 它是一个只写数据流, 允许你以 print 和 echo一样的方式写入到输出缓冲区。 $writer->save('php://output'); ``` ###### 2、xls 文件下载 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '欧阳克'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); $filename = '1.xls'; header('Content-Type:application/vnd.ms-excel'); header('Content-Disposition:attachment;filename=1.xls'); header('Cache-Control:max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls'); $writer->save('php://output'); ``` ###### 3、设置工作簿标题 * setTitle ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '欧阳克'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); $sheet->setTitle('欧阳克'); // MIME 协议,文件的类型,不设置,会默认html header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // MIME 协议的扩展 header('Content-Disposition:attachment;filename=1.xlsx'); // 缓存控制 header('Cache-Control:max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); // php://output 它是一个只写数据流, 允许你以 print 和 echo一样的方式写入到输出缓冲区。 $writer->save('php://output'); ``` ###### 4、读取表格 ``` <?php # 载入composer自动加载文件 require 'vendor/autoload.php'; # 创建读操作 $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx'); # 打开文件、载入excel表格 $spreadsheet = $reader->load('1.xlsx'); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); # 获取 单元格值 和 坐标 $cellC1 = $sheet->getCell('B2'); echo '值: ', $cellC1->getValue(),PHP\_EOL; echo '坐标: ', $cellC1->getCoordinate(),PHP\_EOL; $sheet->setCellValue('B2','欧阳锋'); # 获取 单元格值 和 坐标 $cellC2 = $sheet->getCell('B2'); echo '值: ', $cellC2->getValue(),PHP\_EOL; echo '坐标: ', $cellC2->getCoordinate(); ``` #### 六、office 后缀对应的 content-type | 后缀 | MIME Type | | --- | --- | | .doc | application/msword | | .dot | application/msword | | .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | | .dotx | application/vnd.openxmlformats-officedocument.wordprocessingml.template | | .docm | application/vnd.ms-word.document.macroEnabled.12 | | .dotm | application/vnd.ms-word.template.macroEnabled.12 | | .xls | application/vnd.ms-excel | | .xlt | application/vnd.ms-excel | | .xla | application/vnd.ms-excel | | .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | | .xltx | application/vnd.openxmlformats-officedocument.spreadsheetml.template | | .xlsm | application/vnd.ms-excel.sheet.macroEnabled.12 | | .xltm | application/vnd.ms-excel.template.macroEnabled.12 | | .xlam | application/vnd.ms-excel.addin.macroEnabled.12 | | .xlsb | application/vnd.ms-excel.sheet.binary.macroEnabled.12 | | .ppt | application/vnd.ms-powerpoint | | .pot | application/vnd.ms-powerpoint | | .pps | application/vnd.ms-powerpoint | | .ppa | application/vnd.ms-powerpoint | | .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | | .potx | application/vnd.openxmlformats-officedocument.presentationml.template | | .ppsx | application/vnd.openxmlformats-officedocument.presentationml.slideshow | | .ppam | application/vnd.ms-powerpoint.addin.macroEnabled.12 | | .pptm | application/vnd.ms-powerpoint.presentation.macroEnabled.12 | | .potm | application/vnd.ms-powerpoint.presentation.macroEnabled.12 | | .ppsm | application/vnd.ms-powerpoint.slideshow.macroEnabled.12 | #### 七、实战 ###### 1、导出数据 * login\_log 登陆日志表 ``` CREATE TABLE `login_log` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `uid` int(11) DEFAULT NULL COMMENT '管理员ID', `client` tinyint(4) unsigned DEFAULT '0' COMMENT '0-PC 1-ios 2-android', `add_time` int(11) DEFAULT '0' COMMENT '创建时间', `ip` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '登录IP', PRIMARY KEY (`id`) USING BTREE ) ENGINE=MyISAM AUTO\_INCREMENT=1122 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='登录日志'; ``` * index.php 数据列表页面 ``` <?php # 载入方法库 require 'function.php'; $select = select('login\_log','\*'); if(empty($select)){ exit; }else{ foreach($select as &$v){ switch ($v['client']) { case 0: $v['client'] = 'PC电脑'; break; case 1: $v['client'] = '苹果手机'; break; case 2: $v['client'] = '安卓手机'; break; } $v['add\_time'] = date('Y-m-d H:i:s',$v['add\_time']); } } ?> 导出数据 <?php foreach($select as $v){ ?> <?php } ?>
ID用户ID登陆设备登陆时间登陆ip
<?php echo $v['id'] ?><?php echo $v['uid'] ?><?php echo $v['client'] ?><?php echo $v['add\_time'] ?><?php echo $v['ip'] ?>

* download.php 导出操作



<?php # 载入方法库 require 'function.php'; $select = select('login\_log','\*'); if(empty($select)){ exit; }else{ foreach($select as &$v){ switch ($v['client']) { case 0: $v['client'] = 'PC电脑'; break; case 1: $v['client'] = '苹果手机'; break; case 2: $v['client'] = '安卓手机'; break; } $v['add\_time'] = date('Y-m-d H:i:s',$v['add\_time']); } } # 载入composer自动加载文件 require 'vendor/autoload.php'; # 给类文件的命名空间起个别名 use \PhpOffice\PhpSpreadsheet\Spreadsheet; # 实例化 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); # 获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','用户ID'); $sheet->setCellValue('C1','登陆设备'); $sheet->setCellValue('D1','登陆时间'); $sheet->setCellValue('E1','登陆ip'); $sheet->fromArray( $select, null, 'A2' ); // MIME 协议,文件的类型,不设置,会默认html header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // MIME 协议的扩展 header('Content-Disposition:attachment;filename=1.xlsx'); // 缓存控制 header('Cache-Control:max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); // php://output 它是一个只写数据流, 允许你以 print 和 echo一样的方式写入到输出缓冲区。 $writer->save('php://output'); ?>

###### 2、导入数据


* 数据库



商品分类表

CREATE TABLE shop_cat (
id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
pid int(10) unsigned DEFAULT ‘0’ COMMENT ‘父ID’,
name varchar(50) DEFAULT NULL COMMENT ‘分类名’,
status tinyint(1) unsigned DEFAULT ‘1’ COMMENT ‘状态 1开启 0关闭’,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT=‘分类表’;

INSERT INTO shop_cat VALUES (1, 0, ‘女装’, 1);
INSERT INTO shop_cat VALUES (2, 0, ‘男装’, 1);
INSERT INTO shop_cat VALUES (3, 0, ‘孕产’, 1);
INSERT INTO shop_cat VALUES (4, 1, ‘连衣裙’, 1);
INSERT INTO shop_cat VALUES (5, 1, ‘牛仔裤’, 1);
INSERT INTO shop_cat VALUES (6, 2, ‘衬衫’, 1);
INSERT INTO shop_cat VALUES (7, 3, ‘睡衣’, 1);

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

MENT ‘状态 1开启 0关闭’,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT=‘分类表’;

INSERT INTO shop_cat VALUES (1, 0, ‘女装’, 1);
INSERT INTO shop_cat VALUES (2, 0, ‘男装’, 1);
INSERT INTO shop_cat VALUES (3, 0, ‘孕产’, 1);
INSERT INTO shop_cat VALUES (4, 1, ‘连衣裙’, 1);
INSERT INTO shop_cat VALUES (5, 1, ‘牛仔裤’, 1);
INSERT INTO shop_cat VALUES (6, 2, ‘衬衫’, 1);
INSERT INTO shop_cat VALUES (7, 3, ‘睡衣’, 1);

[外链图片转存中…(img-aH2M5504-1715656242380)]
[外链图片转存中…(img-YlIkjVOp-1715656242380)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值