PEAR Excel - программа записи электронных таблиц - writeURL()
Я пытаюсь перенести систему из PHPExcel в Spreadsheet_Excel_Writer из PEAR. Когда я делаю более 23 вызовов writeURL, я получаю поврежденную электронную таблицу. Я ударился головой о стол, пытаясь решить эту проблему. Ниже приведен небольшой автономный пример того, когда это происходит:
//using Spreadsheet_Excel_Writer-0.9.3
require_once(dirname(__FILE__) . '/lib/Spreadsheet_Excel_Writer-0.9.3/Spreadsheet/Excel/Writer.php');
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send('test.xls');
$info =& $workbook->addWorksheet('info');
//write some stuff in the info worksheet
$info->write(0, 0, 'Name');
$info->write(0, 1, 'Age');
$info->write(1, 0, 'John Smith');
$info->write(1, 1, 30);
$info->write(2, 0, 'Johann Schmidt');
$info->write(2, 1, 31);
$info->write(3, 0, 'Juan Herrera');
$info->write(3, 1, 32);
//lets make some links, using the writeURL call
$r = 4;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
//Everything works as expected up to this point.
//but adding any more links into the workbook causes excel to say that it is corrupted..
// try un-commenting one of these...
/*
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
$info->writeUrl($r, 0, "http://www.yahoo.com/$r","Yahoo!$r");
$r++;
*/
//close the workbook
$workbook->close();
Вам потребуется откомментировать любой из дополнительных вызовов writeURL, чтобы произошла ошибка.
Кроме того, если есть обходной путь, который позволит мне писать URL-адреса без этого вызова, это также будет чрезвычайно полезно!