zeff1986
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору с этим Spreadsheet_Excel_Writer'ом одни проблемы! то ли руки кривые, то ли библиотека глючит: сначала вроде все работало нормально, но после того, как началась вставка данных динамически: в цикле из бд, пошла ошибка при открытии файла:Общая ошибка. Общая ошибка ввода-вывода. Вроде код не сложный, но не рабтает, чтоб его! подскажите пожалуйста, в чем может быть проблема? Вот код: require_once 'Z:/usr/local/php5/PEAR/Spreadsheet/Excel/Writer.php'; //We give the path to our file here $workbook=new Spreadsheet_Excel_Writer('Z:/home/'.$_SERVER[SERVER_NAME].'/www/egroupware/addressbook/inc/docs/test.xls'); $worksheet=& $workbook->addWorksheet('Лист1'); $worksheet->write(1, 0,'дата проведения:',$format); $format_a = array('left' => 0, 'bottom' => 0, 'right' => 0, 'top' => 0, 'bold'=>'1', 'size' => '10', 'color'=>'black', 'align' => 'center'); $format =& $workbook->addformat($format_a); $worksheet->write(0, 0,'Смета на артистов (затраты/стоимость)',$format); $worksheet->setmerge(0, 0, 0, 7); $format_a = array('bold'=>'1', 'size' => '10', 'color'=>'black'); $format =& $workbook->addformat($format_a); $worksheet->write(1, 0,'Дата проведения:',$format); $worksheet->write(2, 0,'Место:',$format); $worksheet->write(3, 0,'Основание:',$format); $worksheet->write(4, 0,'Заказчик:',$format); $worksheet->setcolumn(0,0, 17); $worksheet->setmerge(1, 1, 1, 7); $worksheet->setmerge(2, 1, 2, 7); $worksheet->setmerge(3, 1, 3, 7); $worksheet->setmerge(4, 1, 4, 7); $format_a = array('left' => 1, 'bottom' => 1, 'right' => 1, 'top' => 1, 'bold'=>'1', 'size' => '10', 'color'=>'black', 'valign' => 'vcenter', 'align' => 'center'); $format =& $workbook->addformat($format_a); $worksheet->write(6, 0,'Наименование услуги',$format); $worksheet->setmerge(6, 0, 6, 1); $worksheet->write(6, 2,'Исполнитель',$format); $worksheet->setcolumn(6, 2, 27); $format_b = array('left' => 1, 'bottom' => 1, 'right' => 1, 'top' => 1, 'bold'=>'1', 'size' => '10', 'color'=>'black', 'valign' => 'vequal_space', 'align' => 'center'); $formatb =& $workbook->addformat($format_b); $worksheet->setrow(6, 29); $worksheet->write(6, 3,'Кол.',$format); $worksheet->setcolumn(6, 3, 4); $worksheet->write(6, 4,'Цена',$format); $worksheet->setcolumn(6, 4, 8); $worksheet->write(6, 5,'Сумма',$format); $worksheet->setcolumn(6, 5, 8); $worksheet->write(6,6,'Себ-ть общ.',$formatb); $worksheet->setcolumn(6, 6, 10); $worksheet->write(6,7,'Прибыль общ.',$formatb); $worksheet->setcolumn(6, 7, 10); $format_a = array('left' => 1, 'bottom' => 1, 'right' => 1, 'top' => 1, 'bold'=>'0', 'size' => '10', 'color'=>'black', 'valign' => 'vcenter', 'align' => 'center'); $format =& $workbook->addformat($format_a); // вот после добавления следующих строк, ошибка не уходит вообще $cr=7; $ysl=$this->db->query('SELECT naimenovanie, ispolnitel_fio, kol_vo, symma, seb_ed * kol_vo AS seb_symm, ( symma - seb_ed * kol_vo ) AS pribil, data_nachala, mesto FROM yslygi WHERE nomer_dokymenta ="'.$nomer_dogovora.'"'); foreach($ysl as $y) { $worksheet->write($cr, 0,$y['naimenovanie'], $format); $worksheet->setmerge($cr, 0, $cr, 1); $worksheet->write($cr, 2, $y['ispolnitel_fio'], $format); $worksheet->write($cr, 3, $y['kol_vo'],$format); $worksheet->write($cr, 4, $y['symma'],$format); $worksheet->write($cr, 5, $y['seb_symm'],$format); $worksheet->write($cr, 6, $y['pribil'],$format); $dtn=explode(" ", $y['data_nachala']); $mesto[$y['mesto']]=$y['mesto']; list($d,$m,$y) = explode('.',$dtn[0]); $data_proved[$dtn[0]]=$d.' '.$this->mesyac($m).' '.$y; $cr=$cr+1; } $vmesto=implode("; ", $mesto); $data_mesta=implode("; ", $data_proved); // we still need to explicitly close the workbook $worksheet->hidegridlines(); $workbook->close(); P.S. Границы убираются след. образом: $worksheet->hidegridlines(); Затем устанавливается форматом для нужных ячеек: $format_b = array('left' => 1, 'bottom' => 1, //соотв.нижняя граница, правая и тд 'right' => 1, 'top' => 1, 'bold'=>'1', 'size' => '10', 'color'=>'black', 'valign' => 'vequal_space', 'align' => 'center'); |