【发布时间】:2011-04-01 13:17:48
【问题描述】:
我需要在 .xls 文件中保存一些数据。我正在尝试使用 PEAR 库 Spreadsheet_Excel_Writer。这是工作。但现在我正在使用没有 PEAR 的主机。当然,这是非常可怕的。
Spreadsheet_Excel_Writer 有很多依赖项。我需要一个模块或代码,我可以将其包含在我的脚本中。
谢谢。
【问题讨论】:
我需要在 .xls 文件中保存一些数据。我正在尝试使用 PEAR 库 Spreadsheet_Excel_Writer。这是工作。但现在我正在使用没有 PEAR 的主机。当然,这是非常可怕的。
Spreadsheet_Excel_Writer 有很多依赖项。我需要一个模块或代码,我可以将其包含在我的脚本中。
谢谢。
【问题讨论】:
从字面上看,PHPExcel:http://phpexcel.codeplex.com/
【讨论】:
这是一种鲜为人知的格式,从未真正流行起来,但 MS Office 支持所谓的 Excel 2003 XML 文件——这些文件确实是 XML,至少看起来像这样:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<Worksheet>
<Row>
<Cell>
<Data ss:Type="String">First</Data>
</Cell>
</Row>
</Worksheet>
</Workbook>
您可以非常简单地生成此文件而无需任何 PHP 扩展名,并且它将在自 2003 年以来的任何版本的 MS Excel 中正确打开。如果您将文件扩展名重命名为 .xls.xml,OpenOffice 2 和 3 将正确打开这些文件
当用户打开此文件并从 Excel 中保存时,默认情况下,它将转换为经典 XLS 文件。
正如@Alexander.Plutov 在评论中指出的那样,有a library for writing these files。
IBM 网站上有一个有用的(更全面的)页面,介绍了这种格式和 PHP:http://www.ibm.com/developerworks/opensource/library/os-phpexcel/#N101F7
【讨论】:
我正在使用 http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
我把它简单地包含在许多项目中,它就像一个魅力。
【讨论】:
我经常使用电子表格编写器,拥有它很不错,但如果您不需要多张表格或进行一些格式化等功能,您总是只需输出 HTML 并发送一个
header("Content-type: application/vnd.ms-excel")
和“.xls”的扩展名,然后 Excel 或 OpenOffice 的电子表格程序(我猜,我猜是 Mac 的电子表格程序)将打开它并将 HTML 格式化为电子表格。
这不是原生解决方案,但最终对最终用户来说看起来不错。您必须在 html 中使用表格,但您可以添加颜色/边框、填充、字体更改、行跨度、列跨度等,以进行一些控制。但是,没有函数、公式或多张工作表。
【讨论】:
注意,Piskvor 提供的源代码:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<Worksheet>
<Row>
<Cell>
<Data ss:Type="String">First</Data>
</Cell>
</Row>
</Worksheet>
</Workbook>
不是一个有效的 Excel 文件(至少在我的版本 - Excel 2010 中)并且将无法打开并产生错误消息,因为它缺少以下示例中更正的两个必需值(缺少的部分是在 @987654322 @ 你需要一个Table 和一个WorkSheet 必须有一个名称指定为ss:Name 中的字符串):
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<Worksheet ss:Name="test">
<Table>
<Row>
<Cell>
<Data ss:Type="String">First</Data>
</Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
这确实变成了一个有效的 excel 电子表格,感谢 Piskvor 提醒我们这种美妙的开放且机器和人类可读的格式。
【讨论】: