要使用纯PHP创建或编辑Excel电子表格,我们将使用PHPExcel库,该库可以读取和写入许多电子表格格式,包括xls,xlsx,ods和csv。在继续之前,请仔细检查服务器上是否装有PHP 5.2或更高版本,以及是否安装了以下PHP扩展:php_zip,php_xml和php_gd2。

创建电子表格

创建电子表格是PHP应用程序中最常见的用例之一,用于将数据导出到Excel电子表格。查看以下代码,以了解如何使用PHPExcel创建示例Excel电子表格:

// Include PHPExcel library and create its object
require('PHPExcel.php');$phpExcel = new PHPExcel;// Set default font to Arial
$phpExcel->getDefaultStyle()->getFont()->setName('Arial');// Set default font size to 12
$phpExcel->getDefaultStyle()->getFont()->setSize(12);// Set spreadsheet properties – title, creator and description
$phpExcel ->getProperties()->setTitle("Product list");
$phpExcel ->getProperties()->setCreator("Voja Janjic");
$phpExcel ->getProperties()->setDescription("PHP Excel spreadsheet testing.");// Create the PHPExcel spreadsheet writer object
// We will create xlsx file (Excel 2007 and above)
$writer = PHPExcel_IOFactory::createWriter($phpExcel, "Excel2007");// When creating the writer object, the first sheet is also created
// We will get the already created sheet
$sheet = $phpExcel ->getActiveSheet();// Set sheet title
$sheet->setTitle('My product list');// Create spreadsheet header
$sheet ->getCell('A1')->setValue('Product');
$sheet ->getCell('B1')->setValue('Quanity');
$sheet ->getCell('C1')->setValue('Price');// Make the header text bold and larger
$sheet->getStyle('A1:D1')->getFont()->setBold(true)->setSize(14);// Insert product data// Autosize the columns
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
$sheet->getColumnDimension('C')->setAutoSize(true);// Save the spreadsheet
$writer->save('products.xlsx'); 

如果要下载电子表格而不是将其保存到服务器,请执行以下操作:

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="file.xlsx"');
header('Cache-Control: max-age=0');
$writer->save('php://output'); 

编辑现有的电子表格

用PHP编辑电子表格类似于创建电子表格:

// Include PHPExcel library and create its object
require('PHPExcel.php');// Load an existing spreadsheet
$phpExcel = PHPExcel_IOFactory::load('products.xlsx');// Get the first sheet
$sheet = $phpExcel ->getActiveSheet();// Remove 2 rows starting from the row 2
$sheet ->removeRow(2,2);// Insert one new row before row 2
$sheet->insertNewRowBefore(2, 1);// Create the PHPExcel spreadsheet writer object
// We will create xlsx file (Excel 2007 and above)
$writer = PHPExcel_IOFactory::createWriter($phpExcel, "Excel2007");// Save the spreadsheet
$writer->save('products.xlsx'); 

准备电子表格进行打印

为了准备电子表格进行打印,我们将设置纸张方向,大小和边距:

$sheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$sheet -> getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$sheet->getPageMargins()->setTop(1);
$sheet ->getPageMargins()->setRight(0.75);
$sheet ->getPageMargins()->setLeft(0.75);
$sheet ->getPageMargins()->setBottom(1); 

将PHPExcel与Laravel结合使用

PHPExcel库也可以在Laravel框架中使用。签出以下PHP软件包(在此处),并通过Composer安装它。完成安装步骤后,您可以使用以下代码将数据库中的数据导出到Excel电子表格中:

Excel::create('Products', function($excel) {// Set the title$excel->setTitle('Product list');// Set the creator$excel->setCreator('Voja Janjic');// Set description$excel->setDescription('PHP Excel spreadsheet testing');$excel->sheet('Products', function($sheet) {// Get data from the database$products = Product::all();    // Generate header row$sheet->row(1, array('ID','Product','Price','Quantity',                     ));// Generate data rows   $i = 2;    foreach($products as $product) {                                $sheet->row($i, array($product->product_id,$product->product_name,$product->price,$variety->quantity,                 ));$i++;}});})->export('xlsx'); 

下一步

PHPExcel提供了本教程中未提及的许多功能,例如函数,计算和图表。阅读PHPExcel 文档 以了解有关这些的更多信息。

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要

PHP进阶架构师>>>视频、面试文档免费获取​docs.qq.com

或 者关注咱们下面的知乎专栏

PHP大神进阶​zhuanlan.zhihu.com

php 上传 excel xlsx_在PHP中创建和编辑Excel电子表格相关推荐

  1. php怎么在线建excel,PHP中创建和编辑Excel表格的方法

    PHP中创建和编辑Excel表格的方法 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  PHP中创建和编辑Excel表格的方法.txt ] (友情提示:右键点上行 ...

  2. 在PHP中创建和编辑Excel电子表格

    要使用纯PHP创建或编辑Excel电子表格,我们将使用PHPExcel库,它可以读写许多电子表格格式,包括xls,xlsx,ods和csv.在我们继续之前,仔细检查您的服务器上是否有PHP 5.2或更 ...

  3. 上传和优化Magento 2中的产品图像和视频

    2019独角兽企业重金招聘Python工程师标准>>> 首先,了解如何上传以及优化Magento 2中产品的图像和视频是至关重要的.大多数Magento 2网站都有各种各样的产品以及 ...

  4. 如何将常用的软件上传到ESXi本地存储中管理

    一.如何将常用的软件上传到ESXi本地存储中管理 在使用虚拟机时,我们可能需要多个软件.比如部署操作系统需要CentOS或者Windows的镜像,再基于操作系统安装数据库可能有需要SQLServer. ...

  5. 织梦后台怎么上传mp4视频到网站中

    织梦后台其实是不能上传太大的文件,当我们视频文件过大时候,推荐用ftp软件上传. 对于小文件,会碰到上传MP4视频字段,然后上传时候提示文件不支持上传,或者附件不显示附件,这时候我们要怎么操作呢? 一 ...

  6. HTML5输入框里加图片代码,做了一个input上传加号框,图片上传后显示在框中,怎么让加号消失?...

    CSS代码: .div_imgall {border:1px solid blue;width:100px;height:100px;position:relative;} .input_flie { ...

  7. 如何将自己设计的图标或通过网上下载的图标上传到阿里图标图库中使用方法教程

    如何将自己设计的图标或通过网上下载的图标上传到阿里图标图库中使用方法教程 作者:张国军_Suger 开发工具与关键技术:Win10.项目.图标 对于编程人员来说,有一个不可获取的图库就是阿里图标库,这 ...

  8. http文件上传请求在ie浏览器中被挂起,在chrome中出现Provisional headers are shown

    最近项目在运行过程中用户们又反应了一个问题,说会偶尔出现图片上传失败的情况.然后将那些失败的图片拿过来进行验证,果然问题出现了,用ie浏览器在上传附件时,会显示这个请求挂起了.用谷歌浏览器在上传附件时 ...

  9. 上传镜像到 docker hub 中

    标题 1. 上传镜像到 docker hub 中 1. 申请 Docker hub 账号 2. 创建个人仓库 3. 创建镜像 4. 给镜像打标签 5. push 镜像 5.1. 登录 docker h ...

最新文章

  1. 用MFC类来操作数据库的方法
  2. opencv实现快速傅立叶变换和逆变换
  3. [YTU]_2478( C++习题 虚函数-计算图形面积)
  4. mysql复制的工作原理及主从复制的实现
  5. c#控件弹幕效果_C# Form 实现桌面弹幕
  6. ClickHouse表引擎
  7. 95-36-100-ChannelHandler-ChannelOutboundHandler
  8. python canvas画弧度_超清字符画——Python代码
  9. 作为程序员,你一般用什么软件画流程图时序图和状态图等?
  10. html+css实现淘宝右侧固定定位导航
  11. 通过for循环生成简单的座位表
  12. 安卓自定义View进阶-多点触控详解
  13. h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
  14. CCF201809-3
  15. 解决 system_stm32f0xx.o(.data) type RW incompatible with main.o type ZI in er RW_IRAM1.
  16. 推荐系统:协同过滤及其利弊
  17. 象追求女友那样追逐客户(非常经典)
  18. 2022年东南大学计算机考研复试分数线
  19. *grep -F/f的作用*
  20. 电子商务案例分析模型---课程

热门文章

  1. java lucene cms_JEECMSv6标签使用之[@cms_lucene_list]
  2. mysql跳过安全_几年了,作为一个码农终于把MySQL日记看懂了!
  3. Tiktok才是跨境卖家的未来?
  4. input不管用 vue_重读 VUE 官方文档 lt;2gt;
  5. Leetcode每日一题:463.island-perimeter(岛屿的周长)
  6. VS2015+OpenGL配置方法
  7. 什么是线索评分?如何让线索评分发挥作用?
  8. java 线程_理解java多线程
  9. c++ 遍历list_小白学PyTorch | 6 模型的构建访问遍历存储(附代码
  10. id vue2路由传参_vue 路由跳转传参