Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+Firebird+PHPExcel / 19 сообщений из 19, страница 1 из 1
25.12.2014, 11:59
    #38842588
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
Кто нибудь так работал? Имеется три файла. Хотелось бы кнопку в index.php которая будет загружать отчет в xls формат через PHPExcel. Но до кнопки у меня одна проблема. Файл загружается но пустой без значений. Firebird 2.5 стоит. win1251 Подскажите в чем может быть проблема? Не из за кодировки?
config.php:
Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$link = ibase_connect("C:\baza.fdb", "SYSDBA", "masterkey");
if(!$link)
{
exit("Не могу создать соединение ");
}
?>


function.php:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
function get_ibase()
{
$sql = "select id from task";
$result = ibase_query($sql);
$row = array();

for ($i=0;$i<ibase_fetch_row($result);$i++)
{
$row[] = ibase_fetch_assoc($result);
}
return $row;
?>


index.php:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<?php

require_once 'config.php';
require_once 'function.php';
require_once 'Classes/PHPExcel.php';
$abc = get_ibase();
//print_r ($abc);

	$objPHPExcel = new PhpExcel(); 
	$objPHPExcel->setActiveSheetIndex(0); 
	$a = $objPHPExcel->createSheet(); 
	$active_sheet = $objPHPExcel->getActiveSheet; 
	$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); 
	//$active_sheet->getPageSetup()->SetPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
	$objPHPExcel->getActiveSheet()->setTitle("Отчет1");
	$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
	$objPHPExcel->getActiveSheet()->mergecells('A1:D1');
	$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(40);
	$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Document.KZ');
	
	$a->setTitle('Отчет2');
	$objPHPExcel->getActiveSheet()->mergecells('A4:C4');
	$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Дата создания отчета');

	$date = date('d-m-Y');
	$objPHPExcel->getActiveSheet()->setCellValue('D4', $date);
	$objPHPExcel->getActiveSheet()->getStyle('D4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14);

	$rowstart = 7;
	$i=0;

	foreach($abc as $item)
	{
		$rownext = $rowstart+$i;
		$objPHPExcel->getActiveSheet()->setCellValue('A'.$rownext, $item['id']);
		$i++;
	}	
	header("Content-Type:application/vnd.ms-excel"); 
	header("Content-Disposition:attachment;filename='simple.xls'");
	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
	$objWriter->save('php://output'); 
	exit();

?>
...
Рейтинг: 0 / 0
25.12.2014, 12:13
    #38842619
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainekФайл загружается но пустой без значений.Вообще пустой, даже без статичных данных, вроде 'Дата создания отчета'?


wainekНе из за кодировки?Попробуйте латиницу или цифры - им по барабану кодировка. Если латиница пройдёт, то проблема с кодировкой вполне возможна.
...
Рейтинг: 0 / 0
25.12.2014, 12:15
    #38842624
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Как-то ты данные забираешь интересно... Вроде так оно пологичней будет смотреться:

Код: php
1.
 while ($row[]=ibase_fetch_assoc($sql)) do { $count++; }
...
Рейтинг: 0 / 0
25.12.2014, 12:19
    #38842637
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
vkle,
Пустой имею ввиду данные из БД.
...
Рейтинг: 0 / 0
25.12.2014, 12:20
    #38842638
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainekНе из за кодировки?Попробуйте латиницу или цифры - им по барабану кодировка. Если латиница пройдёт, то проблема с кодировкой вполне возможна.[/quot]

id это и есть цифры
...
Рейтинг: 0 / 0
25.12.2014, 12:21
    #38842641
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Проверь мой вариант. И "do" убери - с другого ЯВУ переключился ;(
...
Рейтинг: 0 / 0
25.12.2014, 12:31
    #38842656
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
DarkMaster,

Поставил
Код: php
1.
while ($row[]=ibase_fetch_assoc($result))


вместо
Код: php
1.
2.
3.
4.
for ($i=0;$i<ibase_fetch_row($result);$i++)
{
$row[] = ibase_fetch_assoc($result);
}


Без изменений((
...
Рейтинг: 0 / 0
25.12.2014, 12:35
    #38842662
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,
Что в $row получается? Или в $abc.
...
Рейтинг: 0 / 0
25.12.2014, 12:42
    #38842672
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
vkle,
Если в index.php расскомментировать
Код: php
1.
//print_r ($abc);

то вот что выводится:

Array ( [0] => Array ( [ID] => 1 ) [1] => Array ( [ID] => 2 ) [2] => Array ( [ID] => 3 ) [3] => Array ( [ID] => 4 ) [4] => Array ( [ID] => 5 ) [5] => Array ( [ID] => 6 ) [6] => Array ( [ID] => 7 ) [7] => Array ( [ID] => 8 ) [8] => Array ( [ID] => 9 ) [9] => Array ( [ID] => 10 ) [10] => Array ( [ID] => 11 ) [11] => Array ( [ID] => 12 ) [12] => Array ( [ID] => 13 ) [13] => Array ( [ID] => 14 ) [14] => Array ( [ID] => 15 ) [15] => Array ( [ID] => 17 ) [16] => Array ( [ID] => 18 ) [17] => Array ( [ID] => 16 ) [18] => Array ( [ID] => 20 ) [19] => Array ( [ID] => 19 ) [20] => Array ( [ID] => 21 ) [21] => Array ( [ID] => 22 ) [22] => Array ( [ID] => 23 ) [23] => Array ( [ID] => 24 ) [24] => Array ( [ID] => 25 ) [25] => Array ( [ID] => 26 ) [26] => Array ( [ID] => 27 ) [27] => Array ( [ID] => 28 ) [28] => Array ( [ID] => 29 ) [29] => )
Warning: Cannot modify header information - headers already sent by (output started at B:\home\localhost\www\eco\index.php:7) in B:\home\localhost\www\eco\index.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at B:\home\localhost\www\eco\index.php:7) in B:\home\localhost\www\eco\index.php on line 39
РПаЎ±б;юя юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяюяяя !"#юяяя%&'юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяюяа…џтщOh«‘+'іЩ0ё@HhЂ� ¤°дUntitled SpreadsheetUnknown CreatorUnknown Creator@іnч? Р@іnч? Р » МСB°=ј%r8X"1ЬђCalibriахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А а А а Д “Ђя’в8яяяяяяяяяяяяЂЂЂЂЂЂЂЂЂАААЂЂЂ™™я™3fяяММяяffяЂЂfМММяЂяяяяяяЂЂЂЂЂяМяМяяМяМяя™™Мяя™ММ™яяМ™3fя3ММ™МяМя™яfff™–––3f3™f333™3™3f33™333…џBG5B1…­BG5B2ББgж®ьcDocument.KZ0B0 A>740=8O >BG5B0 25-12-2014 » МС*+‚ЂЃБѓ„&ffffffж?'ffffffж?(и?)и?Ў"dXX333333У?333333У?U}}$ }$ }$ % @э э э !"#>¶@d‹‹dеggяяяяя » МС*+‚ЂЃБѓ„&ffffffж?'ffffffж?(и?)и?Ў"dXX333333У?333333У?U}$ >¶@d‹‹dggяяяяя юяХНХњ.“—+,щ®0јHPX`hp xЋд WorksheetFeuilles de calculRoot Entryяяяяяяяя АFіnч? Ріnч? Р SummaryInformation(яяяя АFиWorkbookяяяяяяяяяяяя АFЩDocumentSummaryInformation8яяяяяяяяяяяя АF$мюяяяюяяяюяяяэяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя
Warning: Unknown: Unable to complete network request to host "192.168.0.102". Error writing data to the connection. in Unknown on line 0
...
Рейтинг: 0 / 0
25.12.2014, 12:46
    #38842674
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Ну а в самой таблице хоть что-то есть? В конце концов можно в твою функцию вставить print_r/var_dump (без while() ессно!), чтобы убедится, что запрос выполняется и что-то возвращает. Кстати, для ibase_query() я б еще $link передал во избежание.
...
Рейтинг: 0 / 0
25.12.2014, 12:48
    #38842679
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Ну т.е. данные из базы забираются. Что-то не так с генерицией документа.
...
Рейтинг: 0 / 0
25.12.2014, 12:50
    #38842685
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainekвот что выводится:

Array ( [0] => Array ( [ ID ] => 1 ) автор
Код: php
1.
$objPHPExcel->getActiveSheet()->setCellValue('A'.$rownext, $item['id']);

Регистр!
...
Рейтинг: 0 / 0
25.12.2014, 12:52
    #38842689
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Кстати, я использую вот такое для записи в XLS строк:

Код: php
1.
2.
3.
4.
5.
  function xlstr($s)
  {
    $result="\xEF\xBB\xBF".mb_convert_encoding($s,"UTF-8","windows-1251");
    return ($result);
  }
...
Рейтинг: 0 / 0
25.12.2014, 12:53
    #38842692
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
vkle,

+1. Для ibase_fetch_assoc() регистр ВСЕГДА upper в отличие от ibase_fetch_row().
...
Рейтинг: 0 / 0
25.12.2014, 12:56
    #38842698
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
vklewainekвот что выводится:

Array ( [0] => Array ( [ ID ] => 1 ) автор
Код: php
1.
$objPHPExcel->getActiveSheet()->setCellValue('A'.$rownext, $item['id']);

Регистр!

ухххххх еееее да да регистр!!!!!!! выводится. Латиница выводится. Цифры тоже. Кирилица нет. Кодировку базы надо менять надо?
...
Рейтинг: 0 / 0
25.12.2014, 13:01
    #38842711
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
DarkMasterwainek,

Кстати, я использую вот такое для записи в XLS строк:

Код: php
1.
2.
3.
4.
5.
  function xlstr($s)
  {
    $result="\xEF\xBB\xBF".mb_convert_encoding($s,"UTF-8","windows-1251");
    return ($result);
  }



Это когда база win1251? И это записывается в index.php? (в моем случае)
...
Рейтинг: 0 / 0
25.12.2014, 13:44
    #38842804
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
wainek,

Текст в кодировке WIN1251 пишется в эксел файл в кодировке UTF8.
...
Рейтинг: 0 / 0
25.12.2014, 13:54
    #38842820
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
DarkMasterwainek,

Текст в кодировке WIN1251 пишется в эксел файл в кодировке UTF8.
config.php переделал вот таким образом.
автор$link = ibase_connect("C:\baza.fdb", "SYSDBA", "masterkey", "utf8");

Заработало!!!!!!!!!
...
Рейтинг: 0 / 0
25.12.2014, 14:01
    #38842831
wainek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+Firebird+PHPExcel
Спасибо ребята!
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+Firebird+PHPExcel / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]