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 »   

> Без описания
nik_grey
Отправлено: 14 Августа, 2014 - 17:04:23
Post Id


Гость


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


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




День добрый.
Для экспорта таблицы в Excel использую данный скприпт.
CODE (javascript):
скопировать код в буфер обмена
  1. var tableToExcel = (function() {
  2.     var uri = 'data:application/vnd.ms-excel;base64,'
  3.             , 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><table>{table}</table></body></html>'
  4.             , base64 = function(s) {
  5.                 return window.btoa(unescape(encodeURIComponent(s)))
  6.             }
  7.     , format = function(s, c) {
  8.         return s.replace(/{(\w+)}/g, function(m, p) {
  9.             return c[p];
  10.         })
  11.     }
  12.     return function(table, name) {
  13.         if (!table.nodeType)
  14.             table = document.getElementById(table)
  15.         var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
  16.         window.location.href = uri + base64(format(template, ctx))
  17.     }
  18. })()

Скрипт срабатывает при нажатии на кнопку
CODE (html):
скопировать код в буфер обмена
  1. <input type="button" onclick="tableToExcel('report', 'Excel')" value="Экспорт в Excel" >

Скрипт меня устраивает кроме одного. Это название файла .xls, которое выходит очень некрасивое. Вот пример - qXkE7bcL
Может кто сталкивался или поможет сделать так, чтобы в названии экспортируемого файла была дата. Например так - 14.08.2014
Заранее спасибо.
 
 Top
RickMan
Отправлено: 14 Августа, 2014 - 17:14:14
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




А откуда данный скрипт взяли?
 
 Top
nik_grey
Отправлено: 15 Августа, 2014 - 08:37:27
Post Id


Гость


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


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




RickMan пишет:
А откуда данный скрипт взяли?

Где-то на просторах интернета нашёл месяца 2 назад.. Всё устраивало, а теперь вот нужно корректное название.
 
 Top
RickMan
Отправлено: 15 Августа, 2014 - 09:16:32
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




Ну выложите тогда скрипт который отвечает именно за формирование excel файла. Возможно вы где-то подключаете библиотеку какую-то. Потому-что тот кусок кода который вы дали о многом не говорит.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Августа, 2014 - 10:25:03
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




RickMan пишет:
Ну выложите тогда скрипт который отвечает именно за формирование excel файла.

Это он и есть. Здесь нет никакого серверного кода, только data: URL в base64, генерируемый налету.
Интересно сделано при своих многих ограничениях. На сколько знаю, форсировать какое-либо имя невозможно.


-----
PostgreSQL DBA
 
 Top
Sail
Отправлено: 15 Августа, 2014 - 10:45:21
Post Id



Участник


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


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




Вот, нечто подобное с других "просторов интернета":
Спойлер (Отобразить)

Улыбка
 
 Top
nik_grey
Отправлено: 15 Августа, 2014 - 10:47:22
Post Id


Гость


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


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




Мелкий пишет:
RickMan пишет:
Ну выложите тогда скрипт который отвечает именно за формирование excel файла.

Это он и есть. Здесь нет никакого серверного кода, только data: URL в base64, генерируемый налету.
Интересно сделано при своих многих ограничениях. На сколько знаю, форсировать какое-либо имя невозможно.

Понятно.. Может посоветуете какое-нибудь решение для экспорта динамической таблицы (PHP+MySql) в Excel чтобы можно было задать в качестве имени файла текущую дату.
(Добавление)
Sail пишет:
Вот, нечто подобное с других "просторов интернета":
Спойлер (Отобразить)

Улыбка

Спасибо БОЛЬШОЕ!
 
 Top
Мелкий Супермодератор
Отправлено: 15 Августа, 2014 - 11:00:37
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Sail, ага, используется фича из HTML5. Прикольно.


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 15 Августа, 2014 - 12:19:10
Post Id


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


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


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




кагбэ data URL имеет ограничение по размеру разное в разных браузерах.
во всяком случае так было раньше

кроме того гораздо проще формировать HTML с расширением xls
когда ексель его откроет он сам имрорнет в свой формат


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Contr
Отправлено: 15 Августа, 2014 - 12:52:45
Post Id



Частый гость


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


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




Проблемка не только в некрасивом названии ексель файла, но и в том, что КИРИЛЛИЦА не поддерживается
 
 Top
Contr
Отправлено: 27 Августа, 2014 - 12:03:10
Post Id



Частый гость


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


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




Подниму тему вверх. Интересует вот что: использую этот js на сайте, на одной странцие таблица с русскими словами открываются в эксель нормально Радость , на другой - Номер Хм .

Вопрос общий, поэтому кто что может сказать, в чем причина?

Я просто в ступоре
Не понял
 
 Top
IGORtrue
Отправлено: 27 Августа, 2014 - 12:53:03
Post Id



Частый гость


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


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




Есть скрипт экспорта в excel на php..показать?
 
 Top
Contr
Отправлено: 27 Августа, 2014 - 15:50:51
Post Id



Частый гость


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


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




IGORtrue пишет:
Есть скрипт экспорта в excel на php..показать?
Можешь и выложить тут, но я предпочитаю экспортировать в текстовый файл и расширением .xls и разделителями - табуляцией. Вот и вся хитрость.
 
 Top
IGORtrue
Отправлено: 27 Августа, 2014 - 16:27:35
Post Id



Частый гость


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


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




Contr пишет:
Можешь и выложить тут, но я предпочитаю экспортировать в текстовый файл и расширением .xls и разделителями - табуляцией. Вот и вся хитрость.

И если сохранить, то будет обычный excel?
Просто по ТЗ именно в excel выгружать нужно обычно.
Смысл такой, нужна библиотека PHPExcel:
PHP:
скопировать код в буфер обмена
  1.  
  2. function excelExport()
  3.   {
  4.     require(LIBS_DIR.'phpexcel/PHPExcel.php');
  5.     $pExcel = new PHPExcel();
  6.     $pExcel->setActiveSheetIndex(0);
  7.     $aSheet = $pExcel->getActiveSheet();
  8.     $aSheet->setTitle('Первый лист');
  9.         //добавление данных
  10.         $aSheet->setCellValue("A1", "Invoice #");
  11.         $aSheet->setCellValue("B1", "Date of Service");
  12.         $aSheet->setCellValue("C1", "Member ID");
  13.         $aSheet->setCellValue("D1", "Member First Name");
  14.         $aSheet->setCellValue("E1", "Member Last Name");
  15.         //форматирование
  16.         $style_wrap = array( 'font' => array( 'bold' => true ) );
  17.         $aSheet->getStyle('A1:J1')->applyFromArray($style_wrap);
  18.         //отдаем пользователю в браузер
  19.     include("PHPExcel/Writer/Excel5.php");
  20.     $objWriter = new PHPExcel_Writer_Excel5($pExcel);
  21.     ob_clean();
  22.     header('Content-Type: application/vnd.ms-excel');
  23.     header('Content-Disposition: attachment;filename="rate.xls"');
  24.     header('Cache-Control: max-age=0');
  25.     $objWriter->save('php://output');
  26.   }
  27.  

(Отредактировано автором: 27 Августа, 2014 - 16:28:59)

 
 Top
Contr
Отправлено: 27 Августа, 2014 - 17:31:56
Post Id



Частый гость


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


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




ЖЕСТЬ
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB