外链论坛

 找回密码
 立即注册
搜索
查看: 20|回复: 4

什么是PHP,PHP spreadsheet又能干什么?

[复制链接]

3039

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065878
发表于 2024-10-4 16:28:52 | 显示全部楼层 |阅读模式

哈咯,下午好,又是1星期周五,这周的工作和学习怎么样呢?

是不是有人要说↓

不不不,相信大众都在期待周末元旦了吧!

什么?你已然思绪飘到远方,迫不及待了?

别急,身为IT技术想从事IT技术的你,先来学一下PHP吧!

让今天充满学习能量,而后在元旦好好放松一下,工作、学习、生活三不误!(本文纯手打,写了好几天了,代码倘若有错能够告诉我

今天将重点介绍PHP的研发环境、用途和优良,以及PHP Spreadsheet的用途、运用实质操作。毕竟连Facebook都在用php,你还什么理由不消

1.什么是PHP以及PHP Spreadsheet

PHP,全叫作 Hypertext Preprocessor ,中文翻译“超文本预处理器”。PHP内核由C研发因此呢在语法上跟C有不少类似之处。但PHP绝对不是C。PHP语法除了跟C有类似之处外,还跟Java、Perl比较流行的编程语言存在类似地区因此呢倘若你有以上语言基本,PHP入门会更加快速。

在PHP的官网是这般介绍PHP的:

PHP is a popular general-purpose scripting language that is especially suited to web development.

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

翻译过来,大致意思便是

PHP是一种开源通用脚本语语言,并且已然被广泛应用,尤其适用于 Web 研发

持有快速,灵活,实用的特点,PHP能做任何事,包含你的个人博客乃至全世界性的大型站点系统。

PHP能干任何事!

(1)PHP能直接嵌入HTML语言中,与HTML混编。PHP研发的目的重点准许 web 研发人员快速编写动态生成的 web 页面,但 PHP 的用途远不只于此。

(2)PHP还包括了命令列执行接口(command line interface),和产生图形运用者接口(GUI)程式。

PHP优良非常多

(1)PHP开源免费,任何收费的项目。还能够商场运用(你只要改一下内核就能够商用了)

(2)PHP的研发组件非常非常非常丰富

(3)社区非常成熟,你在社区能处理百分之85的问题,虽然还没达到电脑关机能处理百分之99的问题,但已然很给力了。

(4)PHP学习成本非常非常低,见效快,学1个月基本能入门(某门语言要学就得三件套

(5)开源库丰富,基本所有类型均有开源制品

(6)PHP7.0基本不输任何一门语言,这是重点

(7)与MySQL近乎完美的支持

(8)找工作比较容易(这个个人有有些见解:①没什么人学,就没什么人竞争 ②由于国内大厂都用了java,因此非常多培训公司以此来做噱头,引起跟风的人非常多,基本全去搞java教育了 ③可能PHP入门很简单,没什么好割菜的,因此不教。PS:个人观点,仅供参考)

而PhpSpreadsheet是一个纯PHP编写的组件库,它运用现代PHP写法,代码质量和性能比PHPExcel,高不少,完全能够替代PHPExcel(PHPExcel已再也不守护)。运用PhpSpreadsheet能够容易读取和写入Excel文档,支持Excel的所有操作。因此今天先挑这个来讲。

2.PhpSpreadsheet特性

(1)支持读取.xls,.xlsx,.html,.csv等格式文件,支持写入导出.xls,.xlsx,.html,.csv,.pdf格式文件。

2)供给丰富的API,供给单元格样式设置、Excel表格属性设置、图表设置等等许多功能。运用PhpSpreadsheet完全能够生成一个外观结构都满足你的Excel表格文件。

(3)卓越的性能,尤其在PHP7上表现优异,比PHPExcel强大非常多

3.安装安排

(1)软件依赖

运用PhpSpreadsheet需要满足以下要求

PHP5.6或更改版本,举荐PHP7

支持php_zip扩展

支持php_xml扩展

支持php_gd2扩展

(2)安排composer

Wondows平台上,咱们只需要下载Composer-Setup.exe后,一步步安装就可

需要重视的是你需要开启openssl配置,咱们打开php目录下的php.ini,将extension=php_openssl.dll前面的分号去掉就能够了。

安装成功后,咱们能够经过命令窗口(cmd)输入composer--version命令来查看是不是安装成功。

接下来咱们能够更改阿里云Composer全量镜像:

composer config -g repo.packagist composerhttps://mirrors.aliyun.com/composer/

倘若要取消配置:

composer config -g --unset repos.packagist

(3)安装spreadsheet

cmd进入自己的工作文件夹,安装Phpspreadsheet,运行命令

运行完成之后,你的文件目录就多了“vendor”文件夹以及“composer.json”、“composer.lock”文件。

4、运用

例子1.

试运行个例子,在工作文件根目录下创建个test.php,写入以下代码:

<?php//引入phpspreadsheet自动加载文件require vendor/autoload.php;//引入spreadsheet和xlsx类use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;$spreadsheet = new Spreadsheet();//新建个spreadsheet对象$sheet = $spreadsheet->getActiveSheet();$sheet->setCellValue(A1Welcome to Helloweba.);//设置A1表格的内容为“Welcome to Helloweba.”$writer = newXlsx($spreadsheet);$writer->save(hello.xlsx);//保留为hello.xlsx文件

例子2.运用PhpSpreadsheet将Excel导入到MySQL数据库

(1)新建个测试表格score.xlsx,内容如下:

(2)在数据库中新建个test数据库,新建个score分数表,代码如下:

CREATE TABLE score (`id` int(11unsigned NOT NULL AUTO_INCREMENT,`name` varchar(32NOT NULL COMMENT 姓名,`chinese` int(6NOT NULL DEFAULT 0 COMMENT 语文,`maths` int(6NOT NULL DEFAULT 0 COMMENT 数学,`english` int(6NOT NULL DEFAULT 0 COMMENT 外语,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

(3)新建个数据库连接的设置文件conn.php,代码如下

<?php$db=mysqli_connect("host","username","password","database",port);

(4)思路:运用PhpSpreadsheet读取Excel表格中的有用信息,而后组装成sql语句,最后批量插进到MySQL表中,代码如下:

require vendor/autoload.php;include(conn.php); //连接数据库$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader(Xlsx);$reader->setReadDataOnly(TRUE);$spreadsheet = $reader->load(score.xlsx); //载入excel表格$worksheet = $spreadsheet->getActiveSheet();$highestRow = $worksheet->getHighestRow(); // 总行数$highestColumn = $worksheet->getHighestColumn();// 总列数$highestColumnIndex =\PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); // e.g. 5$lines = $highestRow - 2;if ($lines <= 0) {exit(Excel表格中数据);}$sql = "INSERT INTO score(`name`, `chinese`, `maths`, `english`) VALUES ";for ($row = 3; $row <= $highestRow; ++$row) {$name = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //姓名$chinese = $worksheet->getCellByColumnAndRow(2, $row)->getValue();//语文$maths = $worksheet->getCellByColumnAndRow(3, $row)->getValue(); //数学$english = $worksheet->getCellByColumnAndRow(4, $row)->getValue(); //外语$sql .= "($name,$chinese,$maths,$english),";}$sql = rtrim($sql, ","); //去掉最后一个,号try {$db->query($sql);echo OK;catch (Exception $e) {echo $e->getMessage();}

(5)条指令能够获取表格中任意单元格数据内容,$col暗示单元格所在的列,以数字暗示,A列暗示第1列,$row暗示所在的行。

$worksheet->getCellByColumnAndRow($col,$row)->getValue()

例子3.PhpSpreadsheet 读取excel文件

代码如下:

<?php require vendor/autoload.php; use \PhpOffice\PhpSpreadsheet\IOFactory; class Vcard{ public function index(){ $file_name = "1"; $uploadwork = "./";$uploadfile = $uploadwork . $file_name ..xlsx; // 按照表格格式选取Xlsx、Xls、Xml、Ods、Slk、Gnumeric、Html、Csv$reader = IOFactory::createReader(Xlsx); //按文件格式,填入区别的格式字段,重视区分体积$PHPExcel = $reader->load($uploadfile); // 载入excel文件$sheet = $PHPExcel->getSheet(0); // 读取第1個工作表$highestRow = $sheet->getHighestRow(); // 取得总行数$highestColumm = $sheet->getHighestColumn();// 取得总列数$data = [];for ($row = 5; $row <= $highestRow; $row++) //行号从1起始{for ($column = A; $column <= $highestColumm; $column++)//列数是以A列起始{if (empty($sheet->getCell($column . $row)->getValue()) ==false) {if (empty($data[$row]) == false) {$str = $sheet->getCell($column . $row)->getValue();if (strlen($str) > 11) {$pieces = explode("|", $str);$data[$row][mobile] = $pieces[0];else {$data[$row][mobile] = $str;}else {$data[$row][name] = $sheet->getCell($column .$row)->getValue();}}}}// dump($data);$myfile = fopen($uploadwork . $file_name . ".vcf""w"ordie("Unable to open file!");foreach ($data as $key => $value) {$all_str = $this->make_vcard($value[name], $value[mobile]);fwrite($myfile, $all_str);}fclose($myfile);}}

本期技术分享结束啦!

下方投票是意见收集投票,能够帮忙咱们更好的改进分享内容,期盼能得到你的认可和意见,感谢你的参与!

童鞋们记得关注咱们的招聘信息、行业咨询哦,顺便记得三连!↓↓↓

本文谨表率个人观点,如有触及侵权,请联系咱们咱们即时删除。





上一篇:企业监控电脑的软件叫什么?电脑监控软件干什么用的?
下一篇:什么是PHP共享内存,用实例给你们解释一下!
回复

使用道具 举报

3112

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108663
发表于 2024-10-14 06:15:28 | 显示全部楼层
我完全同意你的观点,说得太对了。
回复

使用道具 举报

3056

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138998
发表于 2024-10-23 18:32:11 | 显示全部楼层
我深感你的理解与共鸣,愿对话长流。
回复

使用道具 举报

3063

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158953
发表于 2024-10-30 06:27:09 | 显示全部楼层
楼主节操掉了,还不快捡起来!
回复

使用道具 举报

3037

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109078
发表于 2024-11-8 09:00:13 | 显示全部楼层
你的话深深触动了我,仿佛说出了我心里的声音。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-18 00:29 , Processed in 0.133631 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.