3

我需要在 .xls 文件中保存一些数据。我正在尝试使用 PEAR 库 Spreadsheet_Excel_Writer。这是工作。但现在我正在使用没有 PEAR 的主机。当然,这是非常可怕的。

Spreadsheet_Excel_Writer 有很多依赖项。我需要一个模块或代码,我可以将其包含在我的脚本中。

谢谢。

4

5 回答 5

4

这是一种鲜为人知的格式,从未真正流行起来,但 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 中正确打开。如果您将文件扩展名重命名为,OpenOffice 2 和 3 将正确打开这些文件.xls.xml

当用户打开此文件并从 Excel 中保存时,默认情况下,它将转换为经典 XLS 文件。

正如@Alexander.Plutov 在评论中指出的那样,有一个用于编写这些文件的库

IBM 网站上有一个有用的(更全面的)页面关于这种格式和 PHP:http ://www.ibm.com/developerworks/opensource/library/os-phpexcel/#N101F7

于 2010-08-20T08:59:48.380 回答
4

我经常使用电子表格编写器,拥有它很不错,但是如果您不需要多张工作表或进行一些格式化等功能,您总是只需输出 HTML 并发送

header("Content-type: application/vnd.ms-excel")

和“.xls”的扩展名,然后 Excel 或 OpenOffice 的电子表格程序(我猜,我猜是 Mac 的电子表格程序)将打开它并将 HTML 格式化为电子表格。

它不是原生解决方案,但最终对最终用户来说看起来相当不错。您必须在 html 中使用表格,但您可以添加颜色/边框、填充、字体更改、行跨度、列跨度等,以进行一些控制。但是,没有函数、公式或多张工作表。

于 2010-08-20T09:25:42.880 回答
3

从字面上看,PHPExcel:http ://phpexcel.codeplex.com/

于 2010-08-20T08:36:02.090 回答
3

我正在使用 http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/

我把它简单地包含在许多项目中,它就像一个魅力。

于 2010-08-20T09:09:37.977 回答
1

请注意,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 中)并且将无法打开并生成错误消息,因为它缺少以下示例中更正的两个必需值(缺少的部分是在 a 中WorkSheet您需要 aTable和 aWorkSheet必须将名称指定为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 提醒我们这种美妙的开放和机器和人类可读的格式。

于 2016-02-04T12:40:15.513 回答