Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP/PEAR] Spreadsheet Excel Writer обрывает записи / 4 сообщений из 4, страница 1 из 1
08.11.2013, 16:56
    #38458215
Saules
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
Доброго времени суток!
подскажите в каком направлении искать причину проблемы
есть 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
08.11.2013, 18:37
    #38458331
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
Saules,

Двойной конвертации utf-8 -> utf-8 для текста не может быть?
...
Рейтинг: 0 / 0
11.11.2013, 12:05
    #38460064
Saules
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
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
12.11.2013, 14:03
    #38461807
Saules
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP/PEAR] Spreadsheet Excel Writer обрывает записи
может кому-то пригодится: помогло обновление вот с этим патчом
http://pear.php.net/bugs/bug.php?id=19904
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP/PEAR] Spreadsheet Excel Writer обрывает записи / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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