3

需要将我的文件的标题行格式化为当您在 Excel 电子表格中查看单元格时,它显示为 HEADER,但是当您在编辑栏中单击该单元格时,它会显示“HEADER.

我已经尝试了似乎几乎所有事情都没有运气。无论我尝试什么,都会在单元格中显示为“HEADER”。但是,如果我在 Excel 中双击该单元格,它会按照我想要的方式自动格式化并将撇号从单元格中剥离出来,并将其留在编辑栏中。并且 excel 在一个新单元格中也是如此,我在其中键入“WHATEVER”它只会在单元格中显示 WHATEVER,并且仍然在公式栏中显示“WHATEVER”。

当我使用 phpExcel 创建 Excel 文件时,我该如何做到这一点?

这就是我现在插入值的方式。

$objPHPExcel
    ->getActiveSheet()
    ->setCellValueExplicit(
        $currentColumn.$currentRow, 
        $data, 
        PHPExcel_Cell_DataType::TYPE_STRING
    );

$data 只是一个以撇号开头的字符串。

4

1 回答 1

4

这实际上不是 PHPExcel 支持的功能(令人难以置信的是,以前没有人要求过它),尽管您可以通过向单元格样式添加 quotePrefix 属性(使用适当的 getter 和 setter)来修改代码以支持它,然后修改编写quotePrefix="1"器在将样式写入styles.xml文件时将属性写入xf记录(对于Excel2007)

编辑

可能需要一些调整,但应该相当简单

类/PHPExcel/Style.php

添加 $_quotePrefix 的新属性(布尔类型,默认为 false)并为其提供 getter setter 方法。

类/Reader/Excel2007.php

在第 500 行和第 533 行之间的某处,测试 quotePrefix xf 属性值;如果 xf 属性值为“1”,则添加对 $objStyle(在第 577 行中定义)的调用以调用 quotePrefix 设置器。

类/作家/Excel2007/Style.php

如果 $pStyle quotePrefix 属性为真,则修改 xf 编写器(大约第 399 行)以写入值为“1”的 quotePrefix 属性

于 2013-06-22T17:47:00.193 回答