Экспорт в excel делаю тупо таблицей (pear для spreadsheet excel writer не установлен, и нафиг его).
В хедерах прописываю:
header('Content-Type: text/html; charset=windows-1251');
header("Pragma: public");
header("Expires: 0");
header("Accept-Ranges: bytes");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename=rest.xls');
header("Content-Transfer-Encoding: binary");
Далее идет таблица, оформленная CSS, в которую выводятся данные из БД (код товара, наименование, etc).
Быстрый вопрос (если здесь поймете, о чем я, дальнейшую мою белеберду можете не читать): как при импорте задать для определенной ячейки определенный тип (текстовый)?
Подробно:
Все вроде нормально, но код товара выводится без ведущих нулей. Т.е. сам код товара - 000123, а выводится 123. В самом файле записано как нужно, с нулями. Но при выводе в эксель нули обрубаются. Очевидно, что проблема в типе ячейки - она определяется, как числовая, и соответствующим образом форматируется.
Если добавить какой-нибудь не цифровой символ в ячейке - вывод идет с нулями. А также с этим самым символом, который есессно не нужен.
Как же сказать excel'y, что эта ячейка должна восприниматься, как текстовая?
Заранее спасибо
Спустя 42 минуты, 14 секунд (12.11.2009 - 01:47) glock18 написал(а):
В самом экселе можно кавычку одинарную поставить, чтобы, скажем, + не рассматривался как оператор сложения, а как обычный символ. Попробуй перед числом кавычку пихать. Иных идей как показать это экселю, у меня нет.
Спустя 7 часов, 25 минут, 23 секунды (12.11.2009 - 09:13) sergeiss написал(а):
Импорт в эксель делается каким образом, я не понял? Вручную через файл или буфер обмена, или автоматически?
И я не понял взаимосвязь ПХП с этим вопросом.
И я не понял взаимосвязь ПХП с этим вопросом.
Спустя 5 часов, 49 минут, 2 секунды (12.11.2009 - 15:02) MainVoid написал(а):
glock18, да, спасибо за совет, я так и делал, я об этом написал. Но хотелось бы избавиться от лишнего символа. Он выводится в самом экселе.
sergeiss, при помощи хедеров даю понять браузеру, что отдаю ему файл application/vnd.ms-excel, и браузер при обращении к сайту предлагает его сохранить как xls файл.
В самом теле вывожу обычную таблицу, что-то вроде
При открытии такого файла excel его сам разносит на отдельные ячейки и строки в соответствии с разметкой.
Но вот числа в ячейках с ведущими нулями (например: 0008294) excel обрубает (получается 8294).
Взаимосвязь с пхп только та, что я через него вывожу этот документ в эксель. Вопрос вообще в том, как при таком подходе ячейке задать тип - текстовый.
sergeiss, при помощи хедеров даю понять браузеру, что отдаю ему файл application/vnd.ms-excel, и браузер при обращении к сайту предлагает его сохранить как xls файл.
В самом теле вывожу обычную таблицу, что-то вроде
<table class="data-table" align="center">
<tr>
<td class="header" align="center" style="width:100px">Код товара</td>
<td class="header" style="width:300px">Наименование</td>
<td align="center" class="header" style="width:100px">На складе</td>
<td align="center" class="header" style="width:100px">В пути</td>
</tr>
<tr>
<td align="center" style="width:100px;">"0008294</td>
<td style="width:300px; white-space:nowrap">81827 EG10 652 белый Настольн лампа IP20 E14 60W GEO</td>
<td align="center" style="width:100px">21</td>
<td align="center" style="width:100px">0</td>
</tr>
...</table>
При открытии такого файла excel его сам разносит на отдельные ячейки и строки в соответствии с разметкой.
Но вот числа в ячейках с ведущими нулями (например: 0008294) excel обрубает (получается 8294).
Взаимосвязь с пхп только та, что я через него вывожу этот документ в эксель. Вопрос вообще в том, как при таком подходе ячейке задать тип - текстовый.
Спустя 7 минут (12.11.2009 - 15:09) sergeiss написал(а):
Если ты открываешь его в экселе вручную, то тогда эту проблему можно обойти.
Сохраняешь файл с какими-нибудь разделителями типа "точка с запятой". Все данные будут выведены в одну колонку. Которую выделяешь, и говоришь, что надо "разбить на колонки". В процессе указываешь правильный разделитель и говоришь, что нужная тебе колонка - текстовая. Тогда все ведущие нули будут сохранены безо всяких дополнительных символов.
Сохраняешь файл с какими-нибудь разделителями типа "точка с запятой". Все данные будут выведены в одну колонку. Которую выделяешь, и говоришь, что надо "разбить на колонки". В процессе указываешь правильный разделитель и говоришь, что нужная тебе колонка - текстовая. Тогда все ведущие нули будут сохранены безо всяких дополнительных символов.
Спустя 4 часа, 41 минута, 14 секунд (12.11.2009 - 19:50) MainVoid написал(а):
Все же механизм пишеться для обычных менеджеров, каждого заставить проводить описанную выше процедуру при скачивании файла - утопия.
Спустя 2 часа, 38 минут, 53 секунды (12.11.2009 - 22:29) sergeiss написал(а):
Тогда делай макрос для Экселя
И там сделаешь всё, что нужно.

Спустя 2 часа, 58 минут, 12 секунд (13.11.2009 - 01:27) MainVoid написал(а):
ога, пусть лучше кавычки вручную стирают:) Ладно, never mind.
Спасибо
Спасибо
_____________
Каная