Uso PHPExcel para exportar algunos reportes, siempre he utilizado office 2007, 2010 y me trabaja OK,
el problema es que instale el Sistema en una PC con bajo rendimiento y tiene instalado el office 2003 y cuando voy a abrir el documento (Exportar), me da el error que uso Style y no encuentra un directorio y explota en la linea:
$this->_cellXfSupervisor = new PHPExcel_Style(true);
del fichero PHPExcel.php, aqui pongo mi código fuente del Controlador donde genero el reporte:
public function actionImprimirfact($id)
{
spl_autoload_unregister(array('YiiBase','autoload'));
require(Yii::app()->basePath.'/extensions/phpexcel/Classes/PHPExcel.php');
spl_autoload_register(array('YiiBase', 'autoload'));
$objPHPExcel = PHPExcel_IOFactory::load("facturas.xls");
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A19', $id);
$model=$this->loadModel($id);
$NFac = $model->id;
Luego en el controlador vienen la consulta y luego esto:
$command = Yii::app()->db->createCommand($sql);
$dataReader = $command->queryAll();
$indnom=19;
$indcan=19;
$indpmn=19;
$indpcod=19;
$indpum=19;
$inddesma=19;
$inddesmi=19;
$indrec=19;
foreach($dataReader as $row){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('V5', $row['NITProv'])
->setCellValue('V6', $row['ReComProv'])
->setCellValue('H7', $row['CMNprov'])
->setCellValue('AG7', $row['afavormn'])
->setCellValue('E8', $row['NUEB'])
->setCellValue('AM8', $row['CUEB'])
->setCellValue('E9', $row['NombreCliente'])
->setCellValue('E10', $row['DireccionCliente'])
->setCellValue('M11', $row['NITCliente'])
->setCellValue('AM9', $row['CodigoCliente'])
->setCellValue('M12', $row['RegComCliente'])
->setCellValue('I13', $row['CuentaCUPCliente'])
->setCellValue('J16', $row['NoContratoCliente'])
->setCellValue('AK16', $row['VenceCon'])
->setCellValue('AK13', $row['RegMerCliente'])
->setCellValue('AP55', $row['Factura'])
->setCellValue('E'.$indnom, $row['NProductos'])
->setCellValue('AJ'.$indcan, $row['Cantidad'])
->setCellValue('A'.$indpcod, $row['Codprod'])
->setCellValue('AG'.$indpum, $row['UM'])
->setCellValue('AM'.$indpmn, $row['PrecioMN'])
->setCellValue('AR'.$inddesma, $row['DescMay'])
->setCellValue('AQ'.$inddesmi, $row['DescMin'])
->setCellValue('AS'.$indrec, $row['Impuesto'])
->setCellValue('AG40', $row['NombreFirmante'])
->setCellValue('AG55', $row['PVenta'])
->setCellValue('AG42', $row['CI']);
$indnom++;
$indcan++;
$indpmn++;
$indpcod++;
$indpum++;
$inddesma++;
$inddesmi++;
$indrec++;
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="facturas.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Necesito resolver esto ya que con Office 2007 trabaja bien, doy las gracias por adelantado a las ayudas que me puedan dar