首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在不使用任何phpexcel库的情况下编写xlsx文件?

是的,可以通过使用PHP原生的文件处理函数和相关扩展来在不使用任何PHPExcel库的情况下编写XLSX文件。以下是一种可能的实现方式:

  1. 首先,确保你的PHP安装中已启用了zip扩展。如果未启用,可以在php.ini文件中取消注释extension=php_zip.dll(Windows)或extension=zip.so(Linux),然后重启服务器。
  2. 创建一个XLSX文件的基本结构,包括文件夹结构和各个部分的XML文件。
  3. 使用PHP的文件处理函数创建文件夹和文件,并将必要的XML内容写入相应的文件中。以下是一个示例代码:
代码语言:txt
复制
<?php
// 创建基本的文件夹和文件结构
mkdir('example');
mkdir('example/_rels');
mkdir('example/xl');
mkdir('example/xl/_rels');
mkdir('example/xl/worksheets');

// 创建[Content_Types].xml文件
$contentTypesXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
    <Default Extension="xml" ContentType="application/xml"/>
    <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
    <Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
    <Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>
</Types>';

file_put_contents('example/[Content_Types].xml', $contentTypesXml);

// 创建_rels/.rels文件
$relsXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
</Relationships>';

file_put_contents('example/_rels/.rels', $relsXml);

// 创建xl/_rels/workbook.xml.rels文件
$workbookRelsXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
</Relationships>';

file_put_contents('example/xl/_rels/workbook.xml.rels', $workbookRelsXml);

// 创建xl/workbook.xml文件
$workbookXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <sheets>
        <sheet name="Sheet1" sheetId="1" r:id="rId1"/>
    </sheets>
</workbook>';

file_put_contents('example/xl/workbook.xml', $workbookXml);

// 创建xl/worksheets/sheet1.xml文件
$worksheetXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <sheetData>
        <row>
            <c r="A1">
                <v>Example Value</v>
            </c>
        </row>
    </sheetData>
</worksheet>';

file_put_contents('example/xl/worksheets/sheet1.xml', $worksheetXml);

// 创建[Content_Types].xml.rels文件
$contentTypesRelsXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="../example.xlsx"/>
</Relationships>';

file_put_contents('example/_rels/[Content_Types].xml.rels', $contentTypesRelsXml);

// 压缩生成的文件和文件夹为xlsx文件
$zip = new ZipArchive();
$zip->open('example.xlsx', ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('example'),
    RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file) {
    if (!$file->isDir()) {
        $filePath = $file->getRealPath();
        $relativePath = 'example/' . substr($filePath, strlen('example') + 1);
        $zip->addFile($filePath, $relativePath);
    }
}

$zip->close();

// 删除生成的文件夹
array_map('unlink', glob('example/*.*'));
rmdir('example');
?>

在上面的示例代码中,我们使用了PHP的文件处理函数(例如mkdir、file_put_contents)创建了XLSX文件所需的文件夹和文件,并将XML内容写入文件中。最后,我们使用ZipArchive类将生成的文件夹及其内容压缩为XLSX文件,并删除生成的临时文件夹。

请注意,上述代码仅是一个简单示例,仅包含了基本的XLSX文件结构和部分数据,你可能需要根据实际需求进行调整和扩展。

总结:通过使用PHP的文件处理函数和zip扩展,可以在不使用任何PHPExcel库的情况下编写XLSX文件。这种方法可能需要编写大量的XML内容和文件处理代码,相比于使用PHPExcel库来说,实现起来可能更加繁琐。然而,对于某些特定的场景和要求,这种原生的方式可能是一种可行的选择。

推荐的腾讯云相关产品和产品介绍链接地址:腾讯云对象存储(COS),链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

phpExcel导出文件时内存溢出问题

使用PHPExcel导出文件时,经常会因为文件过大导致PHP内存溢出报错,为了解决这个问题,可以使用PHPExcel提供参数进行优化。...这里说Excel文件过大并不一定是文件大小,更关键在于文件内存放数据和格式,如果数据很多,格式又比较丰富,那很容易会将PHP内存耗尽。...资料2中指出,Excel中一个单元格启用缓存情况下大概占用内存是1K,一个8000行、31列表格(248000个单元格)需要242MB内存。...如果启用缓存,则会降到80MB,效果还是非常明显使用中需要注意,PHPExcel内存优化参数并不在PHPExcel对象中,需要在PHPExcel实例化之前设置。...; 缓存在临时磁盘文件中,速度可能会慢一些 PHPExcel_CachedObjectStorageFactory::cache_to_discISAM; 保存在php://temp PHPExcel_CachedObjectStorageFactory

2.5K30

phpspreadsheet中文手册_php读取文件内容

大家好,又见面了,我是你们朋友全栈君。 由于phpexcel已经不再维护,phpspreadsheet是phpexcel下一个版本。...phpspreadsheet是一个用纯php编写,并引入了命名空间,psr规范等。这里简单介绍下phpspreadsheet导入导出功能。...1、安装 使用composer安装: composer require phpoffice/phpspreadsheet github下载: 2、excel文件导出 /** * excel文件导出 */...如果使用composer安装的话会自动生成。没有的话可以手动下载。 github下载地址: 如您对本文有疑问或者有任何想说,请点击进行留言回复,万千网友为您解惑!...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

4.1K20
  • php导入excel图片

    某次开发中,突然有了需要使用php导入excel图片功能,所以特意研究了下. 准备工作 首先,我们创建一个表格: ?...phpexcel导入 很久之前,我们导入excel使用phpexcel: composer require PHPOffice/Phpexcel 代码如下: <?.../vendor/autoload.php"; //获取xlsx文件数据 function getExcel($file) {     $reader = PHPExcel_IOFactory::load...很明显,使用常规方法是获取不到图片,我们需要使用另外一种方式获取 由于表格图片特性,同一行,同一列,可能会出现又有数据,又有图片情况,而且图片不止1张,所以建议单独获取图片 单独读取表格图片代码...);//把导入文件目录传入,系统会自动找到对应解析类     $sheet = $excel->getSheet(0);//选择第几个表,如下面图片,默认有三个表     /*取图片*/     $

    3K40

    PHP 操作PHPExcel(设置字体、设置边框、合并单元格、设置、设置背景色、以及单元格内换行、单元格不以科学记数法显示等)

    PHPExcel 使用简单说明 PHPExcel 下载地址 解压后把Classes文件夹复制到项目目录并重新命名为PHPExcel。...'/demo.xlsx'); 结合数据查询写一个简单小例子:场景有这样一个订单表如图,我们把1-20号订单,21-40号订单,41-60号订单分开放在不同sheet里面。...dbconfig.php--数据配置文件 <?php /** * Created by ZhengNiu...."/demo.xlsx"; $fileType = PHPExcel_IOFactory::identify($filename);//自动获取文件类型提供给phpexcel用 $objReader...> PHPExcel相关文章、大文件导出数据相关文章 PHP导出成PDF,你用哪个插件。 准备工作首先查询了相关,有FPDF,zendPDF,TcPDF等等。

    4.8K20

    PhpOfficePhpSpreadsheet读取和写入Excel

    PhpSpreadsheet是一个纯PHP编写组件,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcelPHPExcel已不再维护)。...使用composer安装: composer require phpoffice/phpspreadsheet 使用 项目目录下新建/public目录,public目录下创建示例文件test.php...($spreadsheet); $writer->save('hello.xlsx'); 运行代码,你会发现在目录下生成一个hello.xlsx文件,打开Excel文件,你会看到Excel中单元格...卓越性能,尤其PHP7上表现优异,比PHPExcel强大很多。 2....使用PhpSpreadsheet将Excel导入到MySQL数据 导入Excel 思路:使用PhpSpreadsheet读取Excel表格中有用信息,然后组装成sql语句,最后批量插入到MySQL表中

    6.1K32

    PHPExcel 表格导入数据代码解析(二)

    前面大概讲了phpexcel用表格导入数据到数据教程,今天会详细剖析函数代码,话不多说,先上代码: public function upload() { ini_set('memory_limit...");//thinkphp3.2.3中使用Vendor加载第三方类 $file_name=$upload->rootPath....,支持数组和字符串方式定义 saveExt 上传文件保存后缀,设置的话使用文件后缀 replace 存在同名文件是否是覆盖,默认为false exts 允许上传文件后缀(留空为不限制),使用数组或者逗号分隔字符串设置...,默认为空 mimes 允许上传文件类型(留空为不限制),使用数组或者逗号分隔字符串设置,默认为空 autoSub 自动使用子目录保存上传文件 默认为true subName 子目录创建方式,采用数组或者字符串方式定义....使用一个特定读取类,读取文件 $objReader = new PHPExcel_Reader_Excel5(); $objPHPExcel

    1.5K60

    PHPExcel_把Excel数据导入数据PHP

    以后需要使用时候,直接实例化PHPExcel.php中PHPExcel即可使用 wamp启动失败处理方法 控制面板\系统和安全\管理工具\事件查看器\windows日志\应用程序 可以到上面的路径中去查看是否报错信息...,或者apache中查看错误日志 简单使用PHPExcel写入Excel文件 步骤解析: Jetbrains全家桶1年46,售后保障稳定 使用PHPExcel输出数据数据并导出到Excel sql文件: /* Navicat MySQL Data Transfer Source...;//实例化PHPExcel类, 等同于桌面上新建一个excel $objSheet=$objPHPExcel->getActiveSheet();//获得当前活动单元格 //开始本节课代码编写 $objSheet...;//实例化PHPExcel类, 等同于桌面上新建一个excel $objSheet=$objPHPExcel->getActiveSheet();//获得当前活动sheet /**本节课程代码编写开始

    7.4K40

    phpspreadsheet中文手册_php file_put_contents

    大家好,又见面了,我是你们朋友全栈君。 今天遇到一个问题,涉及 php 与 excel 之间数据转换。之前一直用 PHPExcel,他们开发组更新了。但是找到了 PhpSpreadsheet。...一、介绍 用纯 php 编写,它提供了一组类,允许您读取和写入不同电子表格文件格式 支持格式 环境要求 php 5.6 及以上 php_zip 支持并启用 php_xml 支持并启用 php_gd2..., 并且它缺乏文件实际读入 Spreadsheet 对象之前以任何方式配置加载器灵活性。...知道文件类型,可以自己决定使用哪种读取器// 文件路径 $inputFileName = ‘....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    5.1K40

    ThinkPHP5.1 excel表导入导出操作 (PHPExcel)

    ☞ 背景 这两天开发快递查询功能时,涉及到了 Excel表导入MySQL 操作,为了方便后期快捷使用,在此整理一下 PHPExcel对excel 表导入导出代码解决步骤,希望能帮到有需要道友们...… 框架:ThinkPHP5.1 类PHPExcel 技能:Composer,MySql ☞ 前期准备:PHPExcel获取 第一种方式为:使用 Composer 进行安装;...Composer简单使用,实在是太方便了] 进入项目目录,输入命令: composer require phpoffice/phpexcel ?...①. excel 文件整理 首先要求用来导入MySQL 数据表 excel文件内容要规整,对应于你数据表 鄙人将其放置于目录public\cms\file\bird_express.xlsx.../** * 将读取到 excel 文件转化为数组数据并返回 * 此处要求是: * excel文件后缀名不要手动改动,一般为 xls、xlsx

    2.6K30
    领券