php-.xlsx文件可以简化多远

我目前正在研究一个PHP项目,并希望提供(非常基础的)Excel数据库表导出(仅单元格中的字符串和数字,无格式等).我已经阅读了各种Excel文件格式.我想避免包括一个库来做到这一点.

我考虑过使用旧版Microsoft Office XML format,这似乎是最简单的解决方案.但是当我给文件扩展名为.xls而不是.xml时,Excel警告.我不想生成.xml文件,因为我不能保证我项目的用户会知道不要简单地双击文件并感到困惑.我将把它作为最后的选择.

理想情况下,我想生成一个Office Open XML(.xlsx,又名Excel工作簿)文件,该文件可以在不抱怨的情况下打开当前版本的Excel.因此,我查看了格式,发现它是.xml文件的zip压缩文件夹.

structure of a xlsx file

我想我只是将整个目录放在服务器上,编写/替换xl / worksheets / sheet1.xml,再次将其压缩并输出到浏览器.
可悲的是,工作表没有包含实际的字符串和数字,而是引用了sharedStrings.xml中的所有值.

我找到了一个很好的答案https://stackoverflow.com/a/18820405/3625228,但理想情况下,我想摆脱所有可以简化.xlsx的文件.

我查看了[Content_Types] .xml,其中存储了依赖项:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
    <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
    <Default Extension="xml" ContentType="application/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"/>
    <Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>
    <Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>
    <Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>
    <Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/>
    <Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
</Types>

我的问题是:

>是否可以从.xlsx存档中删除文件
>打开Excel时绝对不需要抱怨什么文件
>有没有一种方法或技巧可以将实际的字符串/值放入sheet1.xml中并完全跳过sharedStrings.xml?

免责声明:不使用Microsoft Office XML(Excel 2003)格式文件查找库和/或帮助

解决方法:

是的,您可以直接写入sheet1.xml.我这样做是:https://github.com/nimmneun/OneSheet
也许它给您一个或两个想法=)
我也不要使用主题文件.

更新:
万一您还在搜索…我发现您实际上只需要5个文件,只需确保您的rels指向正确的文件/文件名:

workbook.xml
worksheet.xml
[Content_Types].xml
_rels/.rels
_rels/workbook.xml.rels

供参考:https://blogs.msdn.microsoft.com/brian_jones/2007/05/29/simple-spreadsheetml-file-part-3-formatting/

我将第3部分b / c链接到第1部分和第2部分. 2 =)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...