|
|
|
| Файл в формате csv создается с помощью РНР-скрипта (разделитель точка с запятой или табуляция – пробовал и так, и эдак). Проблема в том, что программа формирует артикулы товаров, некоторые из которых могут иметь вот такой вид:
7.500
000428
Если открыть созданный файл текстовым редактором, то можно убедиться в том, что все эти артикулы записаны верно. Но если открыть программой Excel, то упомянутые примеры воспроизводятся так:
7.5
428
По умолчанию при открытии получается формат ячеек «Общий». Изменение его на «Текстовый» ничего не дает. И даже если просто открыть файл через Microsoft Excel и затем сохранить его в этом же файле, то нули уже оказываются потерянными! И если сохранить файл в формате xls, то потерянные нули не восстанавливаются.
Каким образом можно создать файл средствами РНР так, чтобы в дальнейшем работать с ним как с книгой Microsoft Excel? | |
|
|
|
|
|
|
|
для: Владимир55
(04.10.2012 в 00:49)
| | Примените уже в Экселе к первому столбцу формулу:
=СЦЕПИТЬ(ЛЕВСИМВ(A1;НАЙТИ(".";A1));ЛЕВСИМВ(СЦЕПИТЬ(ПСТР(A1;НАЙТИ(".";A1)+1;3);"000");3))
а ко второму
=ПРАВСИМВ(СЦЕПИТЬ("000000";B1);6) | |
|
|
|
|
|
|
|
для: Sfinks
(04.10.2012 в 01:17)
| | Спасибо!
С первой проблемой удалось справиться, заменив десятичную точку другим знаком. А вот со второй сложнее - знаков может быть не только шесть, но и гораздо больше (максимум, который я пока что встретил - 42 знака, из которых 35 нулей, стоящих впереди).
Как быть в этих случаях? Универсальной формулы нет?
Может быть, можно в РНР для ячеек артикула задать какой-то невидимый код, переводящий их в режим "Текстовый"? Или нет такого кода? | |
|
|
|
|
|
|
|
для: Владимир55
(04.10.2012 в 08:56)
| | Можете перед нулями поставить любой символ - поле будет строковым. Потом в экселе формулой удалить этот символ. | |
|
|
|
|
|
|
|
для: Владимир55
(04.10.2012 в 08:56)
| | MDSN вам надо посетить, там все описано. Если конечно, вы хотите именно на стороне сервера что-то делать для клиента. | |
|
|
|
|
|
|
|
для: confirm
(04.10.2012 в 09:59)
| | "Ответ на ваш вопрос есть в библиотеке имени Ленина" - по информативности примерно такой же ответ. | |
|
|
|
|
|
|
|
для: Sfinks
(04.10.2012 в 10:11)
| | Что вы говорите!? Вы вообще-то посещали ресурс данный, имеете представление о нем, и для чего он? | |
|
|
|
|
|
|
|
для: confirm
(04.10.2012 в 10:18)
| | Да. База знаний обо всем, что делает микрософт. Т.е мегатонны информации, в которых не понятно что где и как искать. Я только это имел ввиду. Т.е. ответы есть на все.... Но как их найти?.... | |
|
|
|
|
|
|
|
для: Sfinks
(04.10.2012 в 16:23)
| | Там все по разделам, как собственно у любого производителя. Я же ведь тоже не знаю, чего конкретно хочет и делает Владимир, но ели речь идет о MS документе для клиента, то хочется, не хочется, а изучать методы и свойства детищей MS придется. Ведь совсем не обязательно для этого оперировать xls, а тем более куцым csv, Excel прекрасно может импортировать, понимать, другие форматы, тем более, что их совсем не обязательно создавать на сервере с помощью COM-объектов, можно создать их в обычном выходном потоке данных, но для этого опять таки нужно знать формат.
Возможно, что Владимир создает интерфейс администрирования, то сам бог велел, в этом случае, забыть об удаленном интерфейсе, а иметь локальный, а сервер только выдает данные по запросу. Вот в этом случае hta в самую точку, и не сложно, и возможностей на клиенте хоть отбавляй. Но опять таки, нужно знать методы и свойства исходника.
Что конкретно не знаю, потому так, а поиск непосредственно офисных приложений, их описаний, там не сложен, к тому же, как и у всех культурных, у них есть поиск. | |
|
|
|
|
|
|
|
для: Владимир55
(04.10.2012 в 00:49)
| | В Сети есть хорошая библиотека PHPExcel.
Насколько я помню, с ней таких проблем, как у вас, не было. | |
|
|
|