2013-06-19 3 views
3

Необходимо отформатировать строку заголовка моего файла, которая будет отформатирована так же, как при просмотре ячейки в электронной таблице Excel, которая отображается как HEADER, но когда вы нажимаете эту ячейку в строке формул, она показывает «HEADER».Формат текста с ведущим апострофом

Я пробовал, казалось бы, почти все без везения. Независимо от того, что я пытаюсь отобразить в ячейке, это «HEADER». Однако, если я дважды щелкнул эту ячейку в Excel, она автоматически форматирует способ, который я хочу, и удаляет апостроф из ячейки и оставляет его в строке формул. И excel делает это также в новой ячейке, где я печатаю «WHATEVER», она просто отображает WHATEVER в ячейке и все еще отображает «WHATEVER» в строке формул.

Как это сделать, так что это уже отображается таким образом, когда я создаю файл Excel с помощью phpExcel?

Вот как я вставляю значения прямо сейчас.

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

Данные $ будут просто строкой, которой предшествует апостроф.

+0

Просто как общий вопрос, почему? –

+0

запрос клиента ... и это мой вопрос, но это то, что они хотят. Спасибо, что ответ скоро проверит ваше решение. – Jason

+0

Мне нужно будет проверить, что нужно сделать для эквивалента Excel5, и посмотреть, поддерживали ли другие авторы. –

ответ

4

Это не функция, которая поддерживает PHPExcel (невероятно, никто никогда не просил об этом раньше), хотя вы могли бы изменить код, чтобы поддержать его, добавив атрибут quotePrefix в стиль ячейки (с соответствующим геттером и установщиком), а затем изменить писателя, чтобы написать атрибут записи Xf quotePrefix="1", когда он записывает стиль в файл styles.xml (для Excel2007)

EDIT

Может нужно немного тонкой настройки, но должны быть достаточно простыми

Классы/PHPExcel/Style.php

добавьте новый атрибут $ _quotePrefix (введите Boolean, default false) и предоставите ему методы настройки getter.

Классы/Reader/Excel2007.php

где-то между линиями 500 и 533, тест для значения атрибута XF quotePrefix; и добавьте вызов $ objStyle (определенный в строке 577), чтобы вызвать setPrefix setter, если значение атрибута xf было «1».

Классы/записи/Excel2007/Style.php

Изменить Xf писатель (около линии 399), чтобы написать приписывать quotePrefix со значением "1", если свойство $ pStyle quotePrefix верно

+0

Mark, Любая идея, какие файлы мне нужно будет редактировать? Пытался немного и не совсем точно, где мне нужно будет добавить их. Спасибо – Jason

+0

Получение этого предупреждения, когда я пытаюсь добавить этот атрибут. PHP Предупреждение: XMLWriter :: writeAttribute(): Недопустимое имя атрибута в файле ../phpexcel/PHPExcel/Writer/Excel2007/Style.php в строке 409 Попробовал установить его как с одним, так и с истинным результатом. $ objWriter-> writeAttribute ('quotePrefix', true); И если я подавляю предупреждения и открываю созданный файл, то quotePrefix не так угадает, что мне нужно добавить это как действительный атрибут phpExcel где-нибудь? Любые мысли? Спасибо – Jason

+0

Упс ... только что понял, что у меня было пространство после quotePrefix, так что это была проблема. с приведенным выше комментарием – Jason

Смежные вопросы