Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)

这篇具有很好参考价值的文章主要介绍了Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)

PHP_XLSXWriter 是一个用于生成 Microsoft Excel 2007+ xlsx 文件的 PHP 库。XLSX 是一种用基于 XML 的开放式文件标准存储电子表格数据的格式,用于 Excel 2007 及更高版。PHP_XLSXWriter 库提供简单的 API,用于将 PHP 数组中的数据写入 XLSX 文件。它可以写入包含多个工作表(worksheet)和大量数据的文件,并使用自动适应处理大型数据量。

相对于其他 Excel 库,PHP_XLSXWriter 的优势主要有:

  1. 高性能 - PHP_XLSXWriter 采用 zipArchive 函数压缩数据文件,速度快且生成的文件比较小。

  2. 运行稳定 - PHP_XLSXWriter 不需要依赖其他库或插件即可运行,并且可移植性比其他库高。

  3. 代码简洁和易用 - PHP_XLSXWriter 的 API 简单,灵活性高,可读性和可维护性好。

  4. 支持大数据集 - PHP_XLSXWriter 能够处理大量数据,并且采用的自适应处理大数据量技术在处理大数据集时非常可靠。

一、PHP_XLSXWriter与PHPExcel的区别

PHP_XLSXWriter和PHPExcel都是用于操作Excel电子表格的PHP类库,它们的区别主要体现在以下几个方面:

  1. 速度和内存消耗

相比于PHPExcel,PHP_XLSXWriter在操作大量数据时速度更快,同时也更节省内存资源。

  1. 外部依赖

PHPExcel需要依赖于LibreOffice或OpenOffice等第三方库来实现对Excel文件的操作,而PHP_XLSXWriter则不需要外部依赖,可以直接生成OpenXML格式的电子表格文件。

  1. 功能和灵活性

PHPExcel的功能非常丰富,支持多种Excel格式的读写操作,同时也能够处理一些高级的Excel操作,比如公式计算等。相比之下,PHP_XLSXWriter虽然没有PHPExcel的功能那么强大,但它的设计更为灵活,能够方便地对数据进行处理和格式化。

  1. 开发者支持

PHPExcel自2018年起已宣布停止维护和支持,虽然仍然可以使用,但未来可能会遇到一些兼容性和安全性的问题。相比之下,PHP_XLSXWriter仍然在积极维护和开发,未来也会有更多的功能和性能上的提升。

综上所述,如果你对Excel文件的操作需要高度的灵活性和性能,可以选择PHP_XLSXWriter。如果你需要处理复杂的Excel文件以及使用高级的Excel操作,可以使用PHPExcel。但是,考虑到PHPExcel已经停止了开发和支持,建议使用新的类库,如PhpSpreadsheet。

二、PHP_XLSXWriter的使用

1.使用步骤

PHP_XLSXWriter是一个用于生成Microsoft Excel OpenXML格式电子表格(xlsx)的PHP类库。使用PHP_XLSXWriter库可以非常方便地生成Excel电子表格,并支持多种数据类型和Excel的各种格式化选项。下面是使用PHP_XLSXWriter的一些基本步骤:

  1. 下载并安装PHP_XLSXWriter类库:传送门。该类库可以在Github上进行下载,下载下来的文件可以放置在项目下的任意位置。

  2. 创建一个XLSXWriter实例。代码如下:

require_once 'path/to/XLSXWriter.php';
$writer = new XLSXWriter();
  1. 设置写入Excel电子表格的基本信息,如标题、工作表名称等。示例代码如下:
$writer->setTitle('My Excel Document');
$writer->setSubject('Document Subject');
$writer->setAuthor('Author Name');
$writer->setDescription('Document Description');
$writer->setKeywords('keywords, go, here');

$sheet_name = 'Sheet1';
$writer->writeSheetHeader($sheet_name, array('Column 1'=> 'string', 'Column 2'=> 'string', 'Column 3'=> 'string', 'Column 4'=> 'string', 'Column 5'=> 'string', 'Column 6'=> 'string'));
  1. 向Excel电子表格写入数据。示例代码如下:
$data = array(
       array('Value 1-1', 'Value 1-2', 'Value 1-3', 'Value 1-4', 'Value 1-5', 'Value 1-6'),
       array('Value 2-1', 'Value 2-2', 'Value 2-3', 'Value 2-4', 'Value 2-5', 'Value 2-6'),
       array('Value 3-1', 'Value 3-2', 'Value 3-3', 'Value 3-4', 'Value 3-5', 'Value 3-6'),
       array('Value 4-1', 'Value 4-2', 'Value 4-3', 'Value 4-4', 'Value 4-5', 'Value 4-6'),
       array('Value 5-1', 'Value 5-2', 'Value 5-3', 'Value 5-4', 'Value 5-5', 'Value 5-6'),
);

foreach($data as $row) {
       $writer->writeSheetRow($sheet_name, $row);
}
  1. 保存Excel电子表格。示例代码如下:
$filename = 'my_excel_file';
$writer->writeToFile($filename . '.xlsx');

以上是使用PHP_XLSXWriter库生成Excel文件的基本流程,你可以根据实际需求,调整各个步骤的代码,以达到你想要的效果。

2.后台下载

函数封装是将一系列相关的操作组合成一个函数并对外提供统一接口的做法。其主要好处如下:

  1. 提高代码复用性和可维护性

将一些常见的操作抽象成函数,以模块化的方式组织代码,有助于提高代码的复用性和可维护性,因为不同的代码区域可以共享相同的功能函数,而不必重复编写。

  1. 提高代码的可读性

通过函数名来描述函数功能,可以提高代码的可读性,使得代码更易于理解和维护。通过封装,可以使得代码模块化,便于理解和维护。

  1. 提高代码的封装性和安全性

封装可以隐藏内部细节,只公开必要的接口,提高了代码的封装性和安全性。封装还可以通过限制对内部数据的访问来保证数据的完整性,从而避免了数据被恶意篡改的危险。

  1. 简化代码实现和维护

通过封装一些常见的操作,可以大幅简化代码实现和维护的复杂度,降低出错的几率,并且能够让开发人员更集中地思考业务逻辑的实现。

总之,函数封装是一个有助于编写高效、可读、可维护、健壮和安全代码的好方法。

/*封装函数
$data,array,数据
$header,标头名称
*/
function makeExcel($data, $header)
{
    require_once "libs/xlsxwriter/xlsxwriter.class.php";
    //实例化
    $writer = new XLSXWriter();
    //文件属性
    $writer->setTitle('My Excel Document');
    $writer->setSubject('Document Subject');
    $writer->setAuthor('Author Name');
    $writer->setDescription('Document Description');
    $writer->setKeywords('keywords, go, here');

    $sheet_name = 'Sheet1';
    $writer->writeSheetHeader($sheet_name, $header);

    foreach ($data as $row) {
        $writer->writeSheetRow($sheet_name, $row);
    }

    $filename = md5(time()) . '.xlsx';
    $writer->writeToFile('upload/' . $filename);
}

//表头
$header = array('序号' => 'int', '姓名' => 'string', '性别' => 'string', '单位' => 'string', '职务' => 'string', '学历' => 'string');
//二维数组
$len = 10000;
$data = array();
for ($j = 0; $j < $len; $j++) {
    $data[$j] = array($j + 1, '姓名' . $j, '性别' . $j, '单位' . $j, '职务' . $j, '学历' . $j);
}
//生成表格
makeExcel($data, $header);

3.浏览器下载

你可以通过以下代码将 PHP_XLSXWriter 生成的 Excel 文件直接通过浏览器下载:

// 导入 PHP_XLSXWriter 库
require 'path/to/PHP_XLSXWriter.php';

// 创建 XLSXWriter 实例
$writer = new XLSXWriter();

// 添加数据到 Excel 文档
$data = array(
   array('姓名', '年龄', '城市'),
   array('张三', 28, '北京'),
   array('李四', 22, '上海'),
   array('王五', 31, '广州')
);

$writer->writeSheet($data);

// 定义下载的文件名
$filename = 'example.xlsx';

// 告诉浏览器输出的内容类型为 Excel
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

// 告诉浏览器文件的大小和名称
header('Content-Disposition: attachment;filename="'. $filename .'"');

// 将 Excel 文件输出到浏览器
$writer->writeToStdOut();
exit();

在上面的例子中,我们首先创建了一个 XLSXWriter 实例,并添加了一些数据。然后,我们通过 PHP 的 header() 函数来告诉浏览器输出的内容类型是 Excel,并且指定了下载文件的名称。最后,我们输出 Excel 文件到浏览器,并通过 exit() 函数停止脚本的运行。

这样,当用户点击下载链接时,浏览器就会开始一个下载操作,将生成的 Excel 文件保存到本地磁盘。

4.封装函数

让函数同时支持后台运行和浏览器下载。

/*封装函数
* $data,array,数据;
* $header,array,标头名称;
* $export,输出方式0后台运行1浏览器下载;
*/
function makeExcel($data, $header, $export = 0)
{
    require_once "libs/xlsxwriter/xlsxwriter.class.php";
    //实例化
    $writer = new XLSXWriter();
    //文件属性
    $writer->setTitle('My Excel Document');
    $writer->setSubject('Document Subject');
    $writer->setAuthor('Author Name');
    $writer->setDescription('Document Description');
    $writer->setKeywords('keywords, go, here');
    $sheet_name = 'Sheet1';
    $writer->writeSheetHeader($sheet_name, $header);
    
    //文件名称
    $filename = md5(time()) . '.xlsx';
    //设置下载方式
    if ($export == 0) {
        foreach ($data as $row) {
            $writer->writeSheetRow($sheet_name, $row);
        }
        $writer->writeToFile('upload/' . $filename);
    } else {
        $writer->writeSheet($data);
        // 告诉浏览器输出的内容类型为 Excel
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        // 告诉浏览器文件的大小和名称
        header('Content-Disposition: attachment;filename="' . $filename . '"');
        // 将 Excel 文件输出到浏览器
        $writer->writeToStdOut();
        exit();
    }
}

@漏刻有时文章来源地址https://www.toymoban.com/news/detail-479644.html

到了这里,关于Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python之第十二章 处理Excel电子表格

    工作薄: .xlsx文件、包含多个表(工作表)。 活动表:用户当前查看的表、关闭Excel前最后查看的表。 import openpyxl 先制作一张例表1.xlsx openpyxl模块提供了openpyxl.load_workbook()函数,用来打开Excel文档。  openpyxl.load_workbook()函数打开Excel文档会返回一个workbook数据类型的值。 workb

    2024年02月05日
    浏览(26)
  • 在Excel电子表格中用公式实现最最简易的标签套打

    每月要为单位新入职员工打印标签贴纸,贴于档案之上,之前是用Excel建立一张表,通过拖动单元格大小,调整文本位置,实现标签贴纸的打印功能。 后来,公司每月都会新招入一批员工,每次打印贴纸时,需要逐一修改标签中员工信息,非常麻烦。那么,今天我们就用一个

    2024年02月15日
    浏览(29)
  • php使用PhpSpreadsheet导出Excel表格详解

    本文会介绍php使用PhpSpreadsheet操作Excel,供大家参考,具体内容如下: 1、简介 PhpSpreadsheet 是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式 PhpSpreadsheet 提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函

    2024年02月10日
    浏览(30)
  • DevExpress WPF的电子表格组件,让您更快获得Excel体验(二)

    DevExpress WPF的Spreadsheet控件拥有读取、写入、转换XLSx、XLS、CSV和TXT文件的功能,并且为终端用户提供了当今最流行的办公生产力套件才能获得的UI体验。它包括与Ribbon UI的完全集成,因此开发者可以以最小的代价交付受MS Excel启发的功能。 在上文中(点击这里回顾)我们介绍

    2024年02月06日
    浏览(31)
  • Python 使用XlsxWriter操作Excel

    在数据处理和报告生成的领域中,Excel 文件一直是广泛使用的标准格式。为了让 Python 开发者能够轻松创建和修改 Excel 文件,XlsxWriter 库应运而生。XlsxWriter 是一个功能强大的 Python 模块,专门用于生成 Microsoft Excel 2007及以上版本(.xlsx 格式)的电子表格文件。本文将对XlsxWr

    2024年02月05日
    浏览(29)
  • 别争了,Excel和Access都靠边,WPS也退,划时代电子表格早已出现

    无论是Excel,还是与它抗衡30多年,不分上下的金山WPS,都没能开创出真正划时代意义的电子表格。 揭秘前让我们先简单回顾下电子表格的前世今生,等不及的可直接进度条下拉。 Excel的前世可以追溯到20世纪70年代,那时候计算机的发展刚刚起步。 最早的电子表格软件之一是

    2024年02月02日
    浏览(33)
  • 【Python数据分析】利用Python将多个EXCEL表格合并为一个EXCEL表格

            如何将EXCEL的多个表格合并成一个表格呢?比如每月销售额是一个单独的表格,我想把它们合并成一个表格,今天就与大家分享如何利用Python数据分析3分钟搞定,不管你要合并多少个文件,代码总是那么几行。不多说了,上案例。          现在有3个月的销售额,需

    2023年04月24日
    浏览(35)
  • 实用教程丨如何将实时数据显示在前端电子表格中(一)

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 数据(包括股票、天气和体育比分)在不断更新为新信息时最为有用。比较通用的 JavaScript 电子表格组件,可以轻松地使用

    2024年02月05日
    浏览(33)
  • Python如何读取Excel表格数据

    环境: Pycharm IDE 3.9  2021.2.1 Excel作为目前主要的流行数据表格,其存储的数据整齐,强可观性。需要对大量的数据进行分析时,可以利用python脚本语言进行数据分析。 python读取excel数据: 1.打开 pycharm IDE ,新建项目,在IDE 的UI界面下点击左下角的 Python Packages .   此项用于安

    2024年02月05日
    浏览(32)
  • django后台管理中导出Excel表格与其它表格数据等功能

    需求,在django admin后台中添加导出excel表格功能 需求人群:财务,董事 该插件允许导出文件的格式为:xls,xlsx,csv,tsv,ods,json,yaml,html 执行该命令将会安装以下插件 ![[Pasted image 20240119043040.png]] ![[Pasted image 20240119043224.png]] 3在订单models.py相同路径中创建resources.py文件 ![[Pasted image 2

    2024年01月25日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包