使用前导撇号格式化文本

时间:2013-06-19 18:49:53

标签: formatting phpexcel

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

我似乎只是在尝试所有事情而没有运气。无论我尝试什么,它都会在单元格中显示为'HEADER。但是,如果我在Excel中双击该单元格,它会自动生成我想要的方式,并将撇号从单元格中删除并将其留在公式栏中。 excel也会在我输入的新单元格中执行此操作'WHATEVER它只会在单元格中显示WHATEVER并且仍然在公式栏中显示'WHATEVER。

如何在使用phpExcel创建Excel文件时以这种方式显示?

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

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

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

1 个答案:

答案 0 :(得分:4)

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

修改

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

类别/ PHPExcel / Style.php

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

类别/读卡器/ Excel2007.php

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

类/作家/ Excel2007的/ Style.php

如果$ pStyle quotePrefix属性为true,则修改xf writer(第399行)以编写值为“1”的quotePrefix属性