Как сохранить ведущие нули в числовых строковых значениях, когда файл csv, созданный с помощью PHP, импортируется в Excel?

У меня есть код, который создает файл CSV и помещает туда определенные данные. Некоторые из этих данных являются текстовыми, а некоторые — числовыми строками. Когда этот файл CSV импортируется в Excel, программа удаляет ведущие нули из числовых строк (номера телефонов и почтовые индексы). Есть ли способ отформатировать/изменить эти числовые строковые значения, чтобы Excel мог читать их таким образом, чтобы он сохранял начальные нули? Или проблема только в Excel, и эту проблему нужно решать оттуда?

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

$dataorder = ["Receiver:", $_POST['orderperson'], $_POST['address'], $_POST['postnumber'], $_POST['city'], $_POST['email'], $_POST['phone']];

fputcsv($fh, $dataorder, $delimeter);

person tuomvii    schedule 11.04.2019    source источник
comment
Это проблема Excel, а не PHP. Используйте команду импорта из текста и импортируйте номер телефона и поля почтового индекса в виде текста.   -  person Salman A    schedule 11.04.2019
comment
В Excel вы добавляете префикс одинарной кавычки ', чтобы сообщить Excel, что это текст, даже если он содержит числа. Поэтому добавьте ' к полям в PHP, прежде чем записывать их в файл csv.   -  person RiggsFolly    schedule 11.04.2019
comment
Проблема, когда я импортирую файл, заключается в том, что Excel удаляет 0 с самого начала. Изменение формата на текст не возвращает его.   -  person tuomvii    schedule 11.04.2019
comment
Риггс, как я сказал в своем тексте, я пробовал, но я не хочу, чтобы цитата оставалась там, даже если нули не удалены.   -  person tuomvii    schedule 11.04.2019
comment
@SalmanA да, я не использовал это представление Power Query, которое помогло мне преобразовать поля в текст перед импортом. Спасибо!   -  person tuomvii    schedule 11.04.2019


Ответы (1)


Excel не знает, как обрабатывать поле, содержащее только числа, и поэтому обрезает все начальные нули. Вы ничего не можете сделать в процессе создания CSV. Что вы можете сделать, так это указать Excel, как обрабатывать каждый столбец данных при импорте файла CSV. На шаге 3, когда вы импортируете текстовые данные (Вкладка «Данные» > «Из текста» > «Выбрать CSV-файл»), Excel позволяет выбрать тип данных для каждого столбца, значение по умолчанию — General; там измените его на Text для числовых полей, и он сохранит все начальные нули. Вот скриншот с шагом 3 импортера текста, он на греческом языке, но вы поняли суть (Γενική -> General, Κείμενο -> Text):

Импорт Excel CSV

person Christos Lytras    schedule 11.04.2019