Именованные диапазоны PHPExcel не работают со специальными символами в MS Office

Я создал зависимые выпадающие списки, как показано здесь.

Проблема в том, что именованные диапазоны не будут работать со специальными символами, такими как пробелы, скобки, дефис и т. д. (подчеркивание работает!) в MS Office, но отлично работает в LibreOffice.

$objPHPExcel->addNamedRange( 
    new PHPExcel_NamedRange(
        'New Zealand', 
        $objPHPExcel->getSheetByName('Worksheet 1'), 
        'A1:A2'
    ) 
);

В названии Новая Зеландия есть пробел, что приводит к ошибкам Excel.

Мне нужно, чтобы он работал и в офисе.


person Sankalp Tambe    schedule 04.08.2015    source источник
comment
Имена в Excel не могут содержать пробелы или начинаться с цифры. Вы всегда можете использовать подчеркивание вместо пробела.   -  person Tim Williams    schedule 04.08.2015
comment
Да, я понимаю. Но мне нужно поддерживать читабельность. И замена всех специальных символов подчеркиванием звучит неправильно. Но проблема в том, что если это работает в Libre, как я могу заставить его работать в Office?   -  person Sankalp Tambe    schedule 04.08.2015
comment
Вы не можете использовать пробелы, поэтому вы не можете заставить его работать точно так же, как в Libre. Тебе придется что-то изменить.   -  person Tim Williams    schedule 04.08.2015


Ответы (1)


Цитата из документация MS Excel (и повторяю то, что Тим Уильямс сказал в комментариях)

Ниже приведен список синтаксических правил, о которых необходимо помнить при создании и редактировании имен.

  • Допустимые символы Первым символом имени должна быть буква, символ подчеркивания (_) или обратная косая черта (\). Остальные символы в имени могут быть буквами, цифрами, точками и символами подчеркивания.

    Note Вы не можете использовать прописные и строчные буквы C, c, R или r в качестве определенного имени, потому что все они используются в качестве сокращения для выбора строки или столбца для выбранной в данный момент ячейки, когда вы вводите их в поле Name или Go. В текстовое поле.

  • Ссылки на ячейки запрещены. Имена не могут совпадать со ссылкой на ячейку, например Z$100 или R1C1.

  • Пробелы недопустимы. Использование пробелов в имени запрещено. Используйте символ подчеркивания (_) и точку (.) в качестве разделителей слов, например, Sales_Tax или First.Quarter.

  • Длина имени Имя может содержать до 255 символов.

  • Чувствительность к регистру Имена могут содержать прописные и строчные буквы. Excel не различает прописные и строчные буквы в именах. Например, если вы создали имя «Продажи», а затем в той же книге создали другое имя «ПРОДАЖИ», Excel предложит вам выбрать уникальное имя.

Имя, содержащее пробел, может работать в LibreOffice, но не будет работать в MS Office... единственный способ заставить это работать в MS Office — изменить имя, чтобы применялись правила именования MS Office.

person Mark Baker    schedule 04.08.2015