powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+Firebird+PHPExcel
19 сообщений из 19, страница 1 из 1
PHP+Firebird+PHPExcel
    #38842588
wainek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто нибудь так работал? Имеется три файла. Хотелось бы кнопку в 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
PHP+Firebird+PHPExcel
    #38842619
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wainekФайл загружается но пустой без значений.Вообще пустой, даже без статичных данных, вроде 'Дата создания отчета'?


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

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

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

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

Проверь мой вариант. И "do" убери - с другого ЯВУ переключился ;(
...
Рейтинг: 0 / 0
PHP+Firebird+PHPExcel
    #38842656
wainek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PHP+Firebird+PHPExcel
    #38842662
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wainek,
Что в $row получается? Или в $abc.
...
Рейтинг: 0 / 0
PHP+Firebird+PHPExcel
    #38842672
wainek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PHP+Firebird+PHPExcel
    #38842674
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wainek,

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

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

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

Регистр!
...
Рейтинг: 0 / 0
PHP+Firebird+PHPExcel
    #38842689
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PHP+Firebird+PHPExcel
    #38842692
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

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

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

Регистр!

ухххххх еееее да да регистр!!!!!!! выводится. Латиница выводится. Цифры тоже. Кирилица нет. Кодировку базы надо менять надо?
...
Рейтинг: 0 / 0
PHP+Firebird+PHPExcel
    #38842711
wainek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PHP+Firebird+PHPExcel
    #38842804
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wainek,

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

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

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


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