Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Экспорт в Excel

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
pantela
Отправлено: 22 Октября, 2013 - 14:23:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Есть страница где имеется таблица (в примере урезанно показываю) которая делает Экспорт в Excel

Пробую 2 варианта кода (отличия пока не особо понял какие, но вроде у №1 варианат можно передавать парамметры через тег <x:....)
Вариант №1
CODE (htmlphp):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.  
  5. <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  6.        
  7. <script type="text/javascript">
  8. var TableToExcel = (function() {
  9.         var uri = 'data:application/vnd.ms-excel;base64,';
  10.         var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body style="font-family: Arial; padding:0px; margin:0px;"><table border="0" cellpadding="0" cellspacing="0">{table}</table></body></html>';
  11.         var base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) };
  12.         var format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) };
  13.        
  14.         return function(table, name) {
  15.                 if (!table.nodeType) table = document.getElementById(table)
  16.                 var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
  17.                 window.location.href = uri + base64(format(template, ctx))
  18.         }
  19. })()
  20. </script>
  21. </head>
  22. <body onLoad="TableToExcel('Table', 'Sheet Name">
  23.  


Вариант №2:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.         header("Content-type: application/vnd.ms-excel");
  4.         header("Content-Disposition: attachment;Filename=invoice.xls");
  5.         header("Content-Transfer-Encoding: binary");
  6. ?>


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <table id="Table" border="0" cellpadding="0" cellspacing="0">
  3.         <tr>
  4.         <td colspan="10">Test<br />Test<br />Test</td>
  5.         </tr>
  6. </table>
  7.  


На данный момент что мне надо:
1. Передавать параметры распечатки границ (margin), т.к. в границах вся таблица не помещается на один лист A4

2. При сохранении файла присвоить автоватический имя файла "export_to_excel" (сейчас пишется default.xls) (при варианте №2 это решенно)

3. При попытке передать текст в одну ячейку у которой имеется абзац (<br />), абзацы переходят на новую ячейку строки.

4. После Экспорта, при открытии файла выводится сообщение "The file you are trying to open is in a different format than specified by the file extension...", подправить что бы сразу открылось бы.

P.S. Начал ковирять всторону готовых библиотек, но там очень много функции и придётся таблицу преписывать под всё...

спс.Ув.

(Отредактировано автором: 04 Ноября, 2013 - 13:55:13)

 
 Top
pantela
Отправлено: 23 Октября, 2013 - 10:51:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Однако что никто ничем не может подсказать помочь...
 
 Top
caballero
Отправлено: 23 Октября, 2013 - 11:31:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




какие нафиг табуляции в екселе?
делается Html c помощью обычного table и сохраняется с расширением xls
ексел сам преобразует при открытии


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
LIME
Отправлено: 23 Октября, 2013 - 11:57:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а еще проще в csv
ячейки разделяются ;
 
 Top
caballero
Отправлено: 23 Октября, 2013 - 12:30:52
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в csv не получится форматировать
шрифты и все такое


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
LIME
Отправлено: 23 Октября, 2013 - 12:32:41
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну это если нужны шрифты и всетакое
 
 Top
Panoptik
Отправлено: 23 Октября, 2013 - 12:38:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




http://phpexcel[dot]codeplex[dot]com/

лучшее решение, которым я когда либо пользовался
жирная правда библиотека, до 20 Мб тянет, но есть всё что вы хотите и дальше больше + отличная документация и много примеров


-----
Just do it
 
 Top
pantela
Отправлено: 31 Октября, 2013 - 12:22:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




caballero пишет:
какие нафиг табуляции в екселе?
делается Html c помощью обычного table и сохраняется с расширением xls
ексел сам преобразует при открытии

Такой вариант подходит, вынес записи массивом виде HTML, нашёл код https://gist[dot]github[dot]com/insin/1031969

Попробую его прикрутить.

спс.Ув.

(Отредактировано автором: 31 Октября, 2013 - 12:43:17)

 
 Top
caballero
Отправлено: 31 Октября, 2013 - 13:18:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




по моему все проще

PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-type: application/vnd.ms-excel");
  3. header("Content-Disposition: attachment;Filename=invoice.xls");
  4. header("Content-Transfer-Encoding: binary");
  5. echo $html;
  6.  

(Отредактировано автором: 31 Октября, 2013 - 13:19:21)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
pantela
Отправлено: 01 Ноября, 2013 - 14:49:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




спс. попробую и ваш вариант, пока html шаблон собераю. вот напр. есть у меня тект

При построении всего на таблицах я сделать rowspan, и всё объединилось в Excel, но при всавке текста с тегам <br /> тогда rowspan не функционирует и происходит отступ на одну ячейку вниз... а мне надо что бы в одной ячейке было бы всё с отступами.

Text 1<br />
Text 2<br />
Text 3<br />

(Отредактировано автором: 01 Ноября, 2013 - 14:50:34)

 
 Top
pantela
Отправлено: 02 Ноября, 2013 - 11:55:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Ещё напр. как при передаче в Excel сразу указать параметры границы расспечатки margin?
Если не ошибаюсь всё тут как-то надо указать
CODE (htmlphp):
скопировать код в буфер обмена
  1. <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body style="font-family: Arial; padding:0px; margin:0px;"><table border="0" cellpadding="0" cellspacing="0">{table}</table></body></html>
 
 Top
caballero
Отправлено: 02 Ноября, 2013 - 12:51:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




у тебя html с таблицей
просто сделай пустой столбец нужно ширины


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
pantela
Отправлено: 02 Ноября, 2013 - 14:04:21
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




так вроде не получится, т.к. при попытке расспечатать за границы выходит, потом приходится в Print Preview, подправзять margin. А мне вот надо что бы сразу подправленные были бы...

+

второй вопрос, как всё же передавать текст в одну ячейку, так что бы абзацы были бы, при попытке передать <br /> тег происхоит пеернос текста на другую ячейку Недовольство, огорчение

спс.Ув.

P.S. Может есть где нибудь список тегов для html -> Excel
 
 Top
caballero
Отправлено: 02 Ноября, 2013 - 15:31:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




для абзацов есть тег P

Цитата:
Может есть где нибудь список тегов для html -> Excel

есть HTML теги которые ексель отлично понимает
никаких специальный тегов для екселя нет


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
pantela
Отправлено: 02 Ноября, 2013 - 15:48:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




я пробовал <p> но всё равно просиходит перенос текста на другую ячейку.

На данный момент что мне надо:
1. Передавать параметры распечатки границ (margin), т.к. в границах вся таблица не помещается на один лист A4

2. При сохранении файла присвоить автоватический имя файла "export_to_excel" (сейчас пишется default.xls)

3. При попытке передать текст в одну ячейку у которой имеется абзац (<br />), абзацы переходят на новую ячейку строки.

4. Сейчас при открытии файла выводится сообщение "The file you are trying to open is in a different format than specified by the file extension...", подправить что бы сразу открылось бы.

P.S. Начал ковирять второну готовых библиотек, но там очень много функции и придётся таблицу преписывать...

спс.Ув.
Скачать файл: export_to_excel.html
Скачан раз: 119
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB