一个.xlsx文件能够简化多远?
我目前正在一个PHP
项目,并希望提供(非常基本)数据库表的Excel导出(只在单元格中的string和数字,没有格式等)。 我已经阅读了各种Excel文件格式。 我想避免包括一个图书馆来做到这一点。
我已经考虑使用传统的Microsoft Office XML格式 ,它似乎是最简单的解决scheme。 但是,当我给文件一个.xls
扩展名而不是.xml
时,Excel会发出警告。 我不想要生成.xml
文件,因为我不能保证我的项目的用户不知道只是双击文件,而感到困惑。 我会留下这个最后的select。
理想情况下,我想生成一个Office Open XML (.xlsx,也就是Excel工作簿)文件,当前版本的Excel打开时不会抱怨。 所以我看了一下这个格式,发现它是一个zip
的.xml
文件的文件夹。
我想我只是把整个目录放在服务器上,写/replacexl/worksheets/sheet1.xml
,再次压缩并输出到浏览器。 可悲的是,工作表不包含实际的string和数字,而是引用来自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打开而不抱怨的文件?
- 有没有一种方法或窍门把实际的string/值放入
sheet1.xml
并跳过sharedStrings.xml
?
免责声明:不寻找图书馆和/或帮助使用Microsoft Office XML(Excel 2003)格式的文件
是的,你可以直接写入sheet1.xml …我这样做: https : //github.com/nimmneun/OneSheet也许它给你一个或两个想法=)我也不使用主题文件btw。
更新:如果你仍然在search…我发现你实际上只需要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 =)