PHP PEAR электронная таблица Excel Writer предел данных

У меня проблема с PEAR, и эта проблема кажется довольно странной.

Я генерирую электронную таблицу с php, где я делаю несколько циклов, чтобы создать таблицу размеров. Пока я просто использую немного деталей на графике, сценарий будет выполняться, но, кажется, есть предел. После этого числа я получу сообщение о фатальной ошибке.

Вот код, который я использую для книги:

require_once ‘../Spreadsheet/Excel/Writer.php’;

        $workbook = new Spreadsheet_Excel_Writer('sizecharts/'.$file.'.xls');

$worksheet =& $workbook->addWorksheet('NL Worksheet '.$itemname);
$workbook->setVersion(8);

$format_top =& $workbook->addFormat();
$format_top->setAlign('top');
$format_top->setTextWrap(1);

$format_center =& $workbook->addFormat();
$format_center->setAlign('center');

$format_heading1 =& $workbook->addFormat();
$format_heading1->setAlign('center');
$format_heading1->setBold(1);
$format_heading1->setSize(16);

$format_info =& $workbook->addFormat();
$format_info->setAlign('center');
$format_info->setBold(1);
$format_info->setSize(12);

$bold =& $workbook->addFormat();
$bold->setBold(1);

$details =& $workbook->addFormat();
$details->setBorder(1);

$details_header =& $workbook->addFormat();
$details_header->setBold(1);
$details_header->setBorder(1);

$details_cell =& $workbook->addFormat();
$details_cell->setBorder(1);
$details_cell->setAlign('center');

$details_cell_header =& $workbook->addFormat();
$details_cell_header->setBold(1);
$details_cell_header->setBorder(1);
$details_cell_header->setAlign('center');

$details_num =& $workbook->addFormat();
$details_num->setBold(1);
$details_num->setBorder(1);
$details_num->setAlign('right');$worksheet->setMerge(1,0,1,$size_count-1);
$worksheet->setMerge(3,0,3,$size_count-1);
$worksheet->setMerge(5,0,5,$size_count-1);

$worksheet->setInputEncoding('utf-8');
$worksheet->write(1, 0, 'MYCOMPANY', $format_heading1);
$worksheet->write(3, 0, '耐斯德克服饰(上海)有限公司', $format_heading1);
$worksheet->write(5, 0, 'Measurements  '.$itemname, $format_info);

$worksheet->setInputEncoding('ISO-8859-7');
$worksheet->write(7, $size_count-2, 'File#:');
$worksheet->write(7, $size_count-1, $file);

$worksheet->write(8, 0, 'Date:');
$worksheet->write(8, 1, $date);

$worksheet->write(9, 0, 'Customer:');
$worksheet->write(9, 1, $customer);

$worksheet->write(10, 0, 'Item Type:');
$worksheet->write(10, 1, $type);

$worksheet->write(11, 0, 'Units:');
$worksheet->write(11, 1, $unit);

$worksheet->setColumn(0,0,10);
$worksheet->setColumn(0,1,30);

$worksheet->write(13, 0, '#',$details_num);
$worksheet->write(13, 1, 'Details:',$details_header);for($k=1;$k<($size_count-1);$k++){

$size_collect_xls   = $sizes_arr[$k];

$worksheet->setInputEncoding('utf-8');
$worksheet->write(13,$k+1, $size_collect_xls,$details_cell_header);
$worksheet->setInputEncoding('ISO-8859-7');

}for($i=0;$i<$count;$i++){

if(isset($_POST['details'][$i])){

$detail             = $_POST['details'][$i];

$worksheet->write(14+$i, 0, ($i+1).'.',$details_num);
$worksheet->write(14+$i, 1, $detail,$details);

$det_collect        = "";

for($k=1;$k<($size_count-1);$k++){$key                = "det".$k;

$det_collect_val    = $_POST[$key][$i];

$worksheet->write(14+$i,$k+1, $det_collect_val,$details_cell);

}}

}// We still need to explicitly close the workbook
$workbook->close();
?>

Я использую это, чтобы написать файл.

Что я позже получу, это сообщение об ошибке

 <b>Fatal error</b>:  Call to undefined method PEAR_Error::setInputEncoding() in <b>/home/MYCOMPANY/www/www/quotbot/sizechartinput.php</b> on line <b>740</b><br />

Который относится к этой строке кода:

 $worksheet->setMerge(1,0,1,$size_count-1);

Если я обменяю эту строку с, скажем так:

 $worksheet->setInputEncoding('utf-8');

Сообщение об ошибке меняется на это:

 <b>Fatal error</b>:  Call to undefined method PEAR_Error::setInputEncoding()

В этом случае в сообщениях об ошибках возникает проблема с кодировкой вместо ячейки. Таким образом, это означает, что с командой нет проблем. Это больше проблема с количеством данных в сгенерированном рабочем листе.

Так есть ли какие-либо ограничения на количество данных, вставляемых в таблицу Excel?

1

Решение

Это не связано.

Линия

$worksheet =& $workbook->addWorksheet('NL Worksheet '.$itemname);

Может либо вернуть «ссылку на объект листа при успехе, PEAR_Error при ошибке» (ссылка Вот). Сообщение об ошибке говорит вам, что вы вызываете неопределенный метод в PEAR_Error, что означает, что ваш вызов не удался.

Вы должны проверить после этой строки, что addWorksheet был успешным Простой пример взят из документации:

// Make sure the worksheet name is less than 31 characters
$worksheet =& $workbook->addWorksheet(substr('NL Worksheet '.$itemname, 0, 31));
if (PEAR::isError($worksheet)) {
die($worksheet->getMessage());
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]