Частный клуб Алекса Экслера

ВНИМАНИЕ! За последние несколько лет форум менялся не раз, поэтому архивов форума существует несколько. Этот - самый последний на данный момент, третий, в нем сейчас содержатся темы с июня 2001 года. Предыдущие архивы можно посмотреть здесь:
Архив 2 (ubb, январь 2001 - июнь 2001) >>
Архив 1 (ubb/arch, 2000 год, избранные темы) >>


 Правила данного подфорума
  Closed TopicStart new topicStart Poll

> Сформировать xls-файл на php
Ю.Н. Махно мужчина
отправлено: 4 декабря 2006, 11:40

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  


Задачка такая. Есть прецеденты?

| ^^^
П. Ушкин мужчина
отправлено: 4 декабря 2006, 12:05

---

группа: участники
сообщений: 3 912
проживает:
   Россия, Столица

  


Гораздо проще сформировать .htm-файл в формате Экселя. Самое простое -- сформировать шаблонный документ в Экселе, сохранить в формате htm, в PHP изменять данные.

| ^^^
Сударь мужчина
отправлено: 4 декабря 2006, 12:13

Забанен

группа: забаненные
сообщений: 3 586
cтрана: Россия

  



Ю.Н. Махно написал: Задачка такая. Есть прецеденты?

Если структура xls-файла известна (я, например, не интересовался), то проблем никаких нет.

Открываем файл с помощью $file_pointer = fopen("file_name","w").

Пишем в файл данные, используя служебные метки экселя fwrite($file_pointer, $data).

Закрываем файл - fclose($file_pointer);

Усе.

| ^^^
Dead Knight мужчина
отправлено: 4 декабря 2006, 12:19

Non sum qualis eram

группа: участники
сообщений: 14 025
проживает:
   Украина, Одесса

  


Могу дать минимум 3-и варианта..

1. Найти готовую библиотеку.
2. Формировать xml-файл передав эаголовок content-type = application/ms-excel
3. Использовать ActiveX и формировать файл на клиенте в java-/vbscript

| ^^^
Ю.Н. Махно мужчина
отправлено: 4 декабря 2006, 15:41

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  


Пока ничего, братцы, не понял. Сам первый раз узнал, что так можно делать.
Задачка, в принципе такая - на сайте посредника есть форма заказа товара, после получения письма с экселевским файлом во вложении посредник пересылает его в Германию. Немцы требуют определённой формы (собственно, простейшей) экселевсого файла во вложении, который и должен получить ихий комп и пережевать автоматом.
Вот собственно и всё.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Blank_Zahlung2.exe

| ^^^
alibek мужчина
отправлено: 4 декабря 2006, 15:50

Error 404

группа: участники
сообщений: 15 200
проживает:
   Россия, Russia

  


Можно формировать XML-файл (для Excel 2003 и выше).
Можно формировать HTML-файл в формате Excel.
Можно формировать XLS-файл в BIFF-формате, понимается любой версией Excel.
Можно формировать XLS-файл в SYLK-формате, понимается любой версией Excel (BIFF - бинарный, SYLK - текстовый).
Можно использовать сторонние библиотеки.

Выбирай.

| ^^^
Klopp мужчина
отправлено: 4 декабря 2006, 16:33

группа: участники
сообщений: 5 879
проживает:
   Россия, Ленинград

  



Ю.Н. Махно написал: требуют определённой формы (собственно, простейшей) экселевсого файла

Аттач твой не скачивается. Но если это действительно "простейший" (то есть набор значений в ячейках), то можно и формат CSV использовать, Excel должен его понимать. То есть "comma separated values": значения в строках разделены запятой или каким-нибудь другим символом, не встречающимся в значениях, файл обозвать "что-то.csv".
CODE
значениеA1,значениеA2,значениеA3
значениеB1,значениеB2,значениеB3

| ^^^
Colel мужчина
отправлено: 4 декабря 2006, 17:19

Заглянувшийся

группа: участники
сообщений: 16 952
проживает:
   Германия, через Швейцарию

  



alibek написал: Можно использовать сторонние библиотеки.

Например портировную версию Spreadsheet::WriteExcel.

| ^^^
ag мужчина
отправлено: 4 декабря 2006, 18:51

Лично я пришиваю пуговицы. К пуговицам претензии есть?

группа: участники
сообщений: 6 278
проживает:
   США, Motor city

  



Klopp написал: Но если это действительно "простейший" (то есть набор значений в ячейках)

то можно сформировать обычную HTML таблицу, записать ее в файл и дать ему расширение .xls

| ^^^
Alex Ilinski мужчина
отправлено: 4 декабря 2006, 21:27

Г.Н.Х.

группа: участники
сообщений: 25 859
проживает:
   Россия, С-Пб

  


Еще можно предложить клиенту заказать сайт у нормальных исполнителей (я думаю, Казахстан ими не беден), а не у странного человека, который уже 2 года на моей памяти "занимается" сайтами, дает рекламу на ТВ, а за вопросом, как получить данные из формы в PHP, лезет на форум.

Поражают люди, которые хотят, чтобы за них сделали всё. Вроде, так просто - открываешь Гугл, пишешь "php excel write" и начинаешь работать. Нет же - надо, чтобы за нас все сделали, самим нам лень работать.

Гррр.

| ^^^
Ю.Н. Махно мужчина
отправлено: 4 декабря 2006, 21:34

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



ag написал:
то можно сформировать обычную HTML таблицу, записать ее в файл и дать ему расширение .xls

Прости меня, я нехорошо про тебя подумал, посчитал ещё одной неудачной шуткой. Теперь накрасил лоб зелёнкой, целься, не промахнёшься. Я думал так не бывает, я думал – уже ничем и никто меня никогда не удивит. Даже шок от ОупенОфисовского формата как-то быстро, минут за пятнадцать, прошёл. А здесь я просто обалдел. Это самое красивое решение, какое я видел за последний год. Спасибо тебе, bro.

| ^^^
ag мужчина
отправлено: 4 декабря 2006, 21:57

Лично я пришиваю пуговицы. К пуговицам претензии есть?

группа: участники
сообщений: 6 278
проживает:
   США, Motor city

  



Ю.Н. Махно написал: А здесь я просто обалдел

Ты бы скормил этот файл немецкому автомату для ясности - одно дело, что Ексел этот файл понимает и показывает как надо, а тупая (я предполагаю худшее) интефейсная программа - совсем другое. Вообще странное требование присылать Ексельный файл, мы к примеру только csv обмениваемся, если не xml. Возможно тот факт, что csv по умолчанию открывается Екселом где-то кого-то запутал.

| ^^^
Ю.Н. Махно мужчина
отправлено: 4 декабря 2006, 22:02

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



ag написал:
Ты бы скормил этот файл немецкому автомату для ясности - одно дело, что Ексел этот файл понимает и показывает как надо, а тупая (я предполагаю худшее) интефейсна

Уже. Жрёт. Красиво.

| ^^^
ag мужчина
отправлено: 4 декабря 2006, 22:04

Лично я пришиваю пуговицы. К пуговицам претензии есть?

группа: участники
сообщений: 6 278
проживает:
   США, Motor city

  



Ю.Н. Махно написал: Уже.

День прожит не зря smile4.gif

| ^^^
Ю.Н. Махно мужчина
отправлено: 4 декабря 2006, 22:05

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



ag написал: Вообще странное требование присылать Ексельный файл

Ха, они ещё потребовали, чтобы форма была в столбик. Привык. Как мне тебя отблагодарить за красивое решение? Могу отдать все 100 баков, полученные за портал, без проблем, удовольствие редкостное ты мне доставил.

| ^^^
AlexLsh мужчина
отправлено: 4 декабря 2006, 23:05

Jacques Dork

группа: участники
сообщений: 42 060
cтрана: США

  



Alex Ilinski написал: ...

Поражают люди, которые хотят, чтобы за них сделали всё. Вроде, так просто - открываешь Гугл, пишешь "php excel write" и начинаешь работать. Нет же - надо, чтобы за нас все сделали, самим нам лень работать.

Гррр.

Ну, это ведь уже достопримечательность форума. Был еще НикПопов, но он, к сожалению, больше не пишет.

| ^^^
Alex Ilinski мужчина
отправлено: 5 декабря 2006, 00:00

Г.Н.Х.

группа: участники
сообщений: 25 859
проживает:
   Россия, С-Пб

  



AlexLsh написал: Был еще НикПопов, но он, к сожалению, больше не пишет.

НикПо я в других местах читаю. А Махно - да, жжот. Я только удивляюсь, как ему до сих пор люди помогают.

| ^^^
Ю.Н. Махно мужчина
отправлено: 9 декабря 2006, 00:46

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



ag написал:
День прожит не зря  smile4.gif

Точно, Алекс.

| ^^^
Ю.Н. Махно мужчина
отправлено: 9 декабря 2006, 10:52

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



Сударь написал: Открываем файл с помощью $file_pointer = fopen("file_name","w").
Пишем в файл данные, используя служебные метки экселя fwrite($file_pointer, $data).
Закрываем файл - fclose($file_pointer);
Усе.

Ты будешь смеяться - не работает.
CODE
$fp=fopen ("zahlung.xls","w");
if($fp){
 $message1.="Файл открыт<br>";
 if(fwrite($fp,$message1)==-1){$message1.="Файл не записан<br>";}else{$message1.="Файл записан<br>";};
 if(fclose($fp)){
   $message1.="Файл закрыт<br>";
  }else{
   $message1.="Файл не закрылся<br>";
  };
}else{
 $message1.="Файл не открылся<br>";
};
Не открывается.

| ^^^
Сударь мужчина
отправлено: 11 декабря 2006, 15:57

Забанен

группа: забаненные
сообщений: 3 586
cтрана: Россия

  



Ю.Н. Махно написал: Не открывается.

Куча причин может быть.
1. Права на чтение-запись директори, куда файл пшешь. Ставь разрешение на создание/запись. Очень частый случай.
2. Переполнение буфера памяти, доступного для выполнение скрипта на чужом серваке (у хостера). Лечится путем обнуления ненужных переменных, хранящих объемные данные, в конкретный момент ненужные. Очень редкий случай.

Плюс еще куча промежуточных в виде конкретных настроек апача или ПХП, но тут я не спец.

| ^^^
ag мужчина
отправлено: 11 декабря 2006, 18:36

Лично я пришиваю пуговицы. К пуговицам претензии есть?

группа: участники
сообщений: 6 278
проживает:
   США, Motor city

  



Сударь написал: Куча причин может быть.

Я бы начал с того, что указал полный путь к файлу, потому как "zahlung.xls" очевидно должен находиться в том же месте, где и исполяемый код, но запросто может оказаться в другом, где ему собственно и место. И надо еще проверить имеет ли пользователь, под именем которого сервер запущен, права на эту директорию.

Это все не касаемо ПХП, который я не знаю вовсе. Так, общие рассуждения.

| ^^^
Ю.Н. Махно мужчина
отправлено: 11 декабря 2006, 23:09

Забанен

группа: забаненные
сообщений: 2 754
проживает:
   Казахстан, Актюбинск

  



Сударь написал



Да, братцы, так и есть, права не выставил. Всё, нафик, всё работает, если кто будет в Актюбинске, непременно закажите себе что-нибудь (типа спамлю). Спасибо всем большое, побаловался пхп и будя. А теперь приглашаю всех на философскую вечеринку, посвящённую околонаучному коммунизму.

| ^^^
Искать в данной теме:  

Topic Options Closed TopicStart new topicStart Poll
Rambler's Top100