Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: HTML в XLS без создания файла на сервере
 
 автор: Dima1999   (13.09.2005 в 01:06)   письмо автору
 
 

Допустим у меня есть таблица в html-документе. Можно ли нажав по какой-нибудь ссылке сохранить ее в формате xls/csv к себе на компьютер, не создавая файл на сервере?

   
 
 автор: cheops   (13.09.2005 в 01:24)   письмо автору
 
   для: Dima1999   (13.09.2005 в 01:06)
 

Ну теоретически можно... а не проще её сразу хранить в csv-формате, а для отображения на серервере преобразовывать из csv в html?

   
 
 автор: Dima1999   (13.09.2005 в 01:28)   письмо автору
 
   для: cheops   (13.09.2005 в 01:24)
 

В том то и дело, что это и не надо. Я вывожу данные из БД в таблицу, а потом мне нужно их запаковать в файл-таблицу, не создавая файл на сервере. Т.е. не из файла, а В файл.

   
 
 автор: cheops   (13.09.2005 в 01:50)   письмо автору
 
   для: Dima1999   (13.09.2005 в 01:28)
 

А нельзя для формирования файла-таблицы испльзовать информацию из базы данных, а не из HTML-таблицы?

   
 
 автор: Dima1999   (13.09.2005 в 01:55)   письмо автору
 
   для: cheops   (13.09.2005 в 01:50)
 

конечно можно, но
а) в таблице все красиво расписано "по полкам" =)
б) нужно видеть результат прежде, чем формировать результируюший файл

   
 
 автор: cheops   (13.09.2005 в 13:01)   письмо автору
 
   для: Dima1999   (13.09.2005 в 01:55)
 

a) Не очень понял...
б) Я предлагаю формировать его динамически и отправлять клиенту при помощи соответствующих HTTP-заголовков, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=7073

   
 
 автор: Dima1999   (13.09.2005 в 14:52)   письмо автору
 
   для: cheops   (13.09.2005 в 13:01)
 

По полкам - т.е. например расписаны colspan'ы, а в csv этого нет. И еще например, заданы длины ячеек. Я бы хотел, чтобы и в итоговом файле они были именно такие.

Насчет темы про сохранение - там есть только про картинки. Как же сохранять всю таблицу из HTML-файла?

   
 
 автор: cheops   (13.09.2005 в 17:43)   письмо автору
 
   для: Dima1999   (13.09.2005 в 14:52)
 

Т.е. в базе данных информация хранится сразу в HTML-формате?

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

   
 
 автор: Dima1999   (13.09.2005 в 18:17)   письмо автору
 
   для: cheops   (13.09.2005 в 17:43)
 

Нет!!!! В БД есть куча полей и таблиц. Я из этих таблиц делаю выборку, располагаю данные так, как мне нужно и после этого хочу по ссылке (например) сохранить получившуюся таблицу в XLS-файл. Таблицу из файла на место картинки подставить я не могу =(

   
 
 автор: cheops   (13.09.2005 в 19:19)   письмо автору
 
   для: Dima1999   (13.09.2005 в 18:17)
 

А никакого файла и не нужно... вы можете создать CSV-файл в переменной, допустим $text? Тогда, код, предоставляющий пользователю возможность загрузить файл будет выглядеть следующим образом.
<? 
$str
="Content-Disposition: attachment; filename=price.xls"
header("Content-type: application/octet-stream"); 
echo 
$text
?>

   
 
 автор: Dima1999   (13.09.2005 в 21:17)   письмо автору
 
   для: cheops   (13.09.2005 в 19:19)
 

Честно говоря не очень понял, как это создавать CSV-файл в переменной. Наверное, $text = "123.csv"??? Это? И еще одна непонятная мне вещь - зачем после хэдеров писать echo $text.

   
 
 автор: cheops   (14.09.2005 в 01:52)   письмо автору
 
   для: Dima1999   (13.09.2005 в 21:17)
 

Нет, в $text - содержимое CSV-файла
<?php
  $text 
'Товарная позиция;123.56;нет в наличии
Вторая товарная позиция;234.67;на складе
Третья товарная позиция;568.98;-'
;
?>

А echo $text - отправляет данные в поток.

   
 
 автор: Dima1999   (14.09.2005 в 08:10)   письмо автору
 
   для: cheops   (14.09.2005 в 01:52)
 

Ага, вроде понял. Вот только еще вопрос. Как мне данные из сформированной в html-файле таблицы перенести в $text? И еще одна вещь: не очень в итоге это будет красиво выглядеть (в цсв-файле), т.к. все длины ячеек в таблице, которая находится в файле, будут потеряны

   
 
 автор: cheops   (14.09.2005 в 12:49)   письмо автору
 
   для: Dima1999   (14.09.2005 в 08:10)
 

>Ага, вроде понял. Вот только еще вопрос. Как мне данные из
>сформированной в html-файле таблицы перенести в $text?
Обычно для этого используют регулярные выражения - если возникают сложности давайте заведём новую тему в разделе http://www.softtime.ru/forum/index.php?id_forum=6 и преобразуем HTML-таблицу в CSV-файл. Только понадобится пример HTML-таблицы.

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

   
 
 автор: Crux   (14.09.2005 в 13:12)   письмо автору
 
   для: cheops   (14.09.2005 в 12:49)
 

как создать XLS файл, на форуме уже это обсуждалось
http://softtime.ru/forum/read.php?id_forum=4&id_theme=1600&page=1

   
 
 автор: Dima1999   (14.09.2005 в 15:32)   письмо автору
 
   для: cheops   (13.09.2005 в 01:24)
 

http://softtime.ru/forum/read.php?id_forum=6&id_theme=7419&page=1

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования