powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP/PEAR] Spreadsheet Excel Writer обрывает записи
4 сообщений из 4, страница 1 из 1
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
    #38458215
Saules
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
подскажите в каком направлении искать причину проблемы
есть 3 базы , есть 3 среды (разработка, тестовая и рабочая).И есть отчет, который генерируется в эксель.
проблема в том, что сгенерированный в рабочей среде отчет при открытии пишет что Excel found unreadable content in 'otchet.xls'. Do you want to recover the contents of this workbook? If you trust the sourse of this workbook, click Yes. а потом Excel recovered your formulas and cell values, but some data may have been lost и записи обрывается на 7931 (всего 11 391). При уменьшении количества выводимых записей, то все работает.
Но, в средах разработки и тестовой такой проблемы нет. Специально увеличивал количество записей до 20 000 - и все работает.

из базы все данные приходят правильно и обрабатываются php тоже правильно- проверял выводом в отдельный файл.
кодировка стоит:
$worksheet->setInputEncoding('UTF-8');
$workbook->setVersion(8);

рабочая среда - Linux 2.6.18-194.32.1.el5PAE #1 SMP i686
тестовая среда - Linux 2.6.18-194.11.4.el5 #1 SMP i686
среда разработки - Windows NT 6.1 build 7601
везде стоит Apache 2.0 Handler и настройки, такие как
max_execution_time 30
max_input_nesting_level 64
max_input_time 60
memory_limit 128M
output_buffering 4096
одинаковые.
в чем же может быть дело?
...
Рейтинг: 0 / 0
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
    #38458331
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Saules,

Двойной конвертации utf-8 -> utf-8 для текста не может быть?
...
Рейтинг: 0 / 0
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
    #38460064
Saules
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterSaules,

Двойной конвертации utf-8 -> utf-8 для текста не может быть?
ну тогда бы на всех средах вылетало бы?
не может быть связано с ограничениями памяти или что-то в этом вроде?


Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
	function write_utf8(&$worksheet,$x,$y,$text,$format=null){
		$worksheet->setInputEncoding('UTF-8');
		$worksheet->write($x,$y,$text,$format);
	}



	function add_excel($date_from,$date_to,$data,$title='',$headers=array()) {
		require_once 'Spreadsheet/Excel/Writer.php';
		$row=0;
		$workbook = new Spreadsheet_Excel_Writer();
		$workbook->setVersion(8);
		$workbook->send('otchet.xls');
		/*stils*/
		$format_head =& $workbook->addFormat();
		$format_head->setHAlign('center');
		$format_head->setBold(1);
		
		$format_cell =& $workbook->addFormat();
		$format_cell->setVAlign('vcenter');
		$format_cell->setHAlign('center');
		$format_cell->setTextWrap();
		$format_cell->setBorder(1);
		$format_cell->setSize(9);
		
		$worksheet =& $workbook->addWorksheet('Otchet');

		$worksheet->setColumn(0,3,30);
		
		$worksheet->setMerge($row,0,$row,(count($headers)==0?0:count($headers)-1));
		write_utf8($worksheet,$row++,0,$title,$format_head);
		
		if (count($headers)>0) {
			$column = 0;
			foreach ($headers as $head) write_utf8($worksheet,$row,$column++,$head,$format_cell);
			$row++;
		}
	
		$column_key = '';
		if (is_array($data)) {
			foreach ($data as $d) {
				$column = 0;
				if ($d[0]!=$column_key) {
					$total = count_from_key($data,$d[0]);
					write_utf8($worksheet,$row,0,$d[0],$format_cell);
					write_utf8($worksheet,$row,1,'Vsego:',$format_cell);
					write_utf8($worksheet,$row,2,$total,$format_cell);
					$row++;
					$column_key=$d[0];
				}
				foreach ($d as $p) write_utf8($worksheet,$row,$column++,$p,$format_cell);			
//$test=  $d[0].  " = ".$d[1]." = ".$d[2].  "; \n";					
//$handle=fopen("statistika.txt","a+");
//fwrite($handle,$test);
// fclose($handle);
				$row++;
			}
		}
		$workbook->close();
	}
...
Рейтинг: 0 / 0
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
    #38461807
Saules
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может кому-то пригодится: помогло обновление вот с этим патчом
http://pear.php.net/bugs/bug.php?id=19904
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP/PEAR] Spreadsheet Excel Writer обрывает записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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