Mit PHPExcel mehrere CSV-Dateien in eine XLS-Datei schreibenPhp

PHP-Programmierer chatten hier
Guest
 Mit PHPExcel mehrere CSV-Dateien in eine XLS-Datei schreiben

Post by Guest »

Guten Morgen. Ich versuche, eine XLS-Datei aus drei verschiedenen CSV-Dateien zu erstellen, die von Windows aus im Verzeichnis /temp abgelegt werden. Diese CSV-Dateien enthalten Daten aus einer Datenbank. Mein Problem ist, dass ich nicht weiß, warum die Ausgabe so anders ist, als sie sein sollte. Ich habe drei Blätter in meinem .xls-Dokument für jede der .csv-Dateien, aber ich erhalte nur den Inhalt einer der Dateien, und dieser überschreibt die Kopfzeile des Dokuments und verändert ihn. Hier ist mein Code

Code: Select all

/**
* Cabeceras para descargar el excel
*/
ini_set('memory_limit', '512M');
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=informe_de_precios" . date("Y-M-D-h-m-s") .  ".xls");
header("Content-Transfer-Encoding:  binary ");

require_once '/PHPExcel_1.8.0_doc/Classes/PHPExcel.php';

$objPHPExcel = new PHPExcel();

$objPHPExcel->
getProperties()
->setCreator("Idiso")
->setLastModifiedBy("Idiso")
->setTitle("Informe errores precios")
->setSubject("Informe errores precios")
->setDescription("Informe errores precios")
->setKeywords("Informe errores precios")
->setCategory("Informe errores precios");

$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'CANAL')
->setCellValue('B1', 'COD_HOTEL')
->setCellValue('C1', 'NOMBRE')
->setCellValue('D1', 'TARIFA')
->setCellValue('E1', 'HABITACION')
->setCellValue('F1', 'REGIMEN')
->setCellValue('G1', 'FECHA_INI')
->setCellValue('H1', 'FECHA_FIN')
->setCellValue('I1', 'RECUENTO')
->setCellValue('J1', 'PUBLICADO')
->setCellValue('K1', 'ERROR_DESCRIPTION')
->setCellValue('L1', 'ERROR_DETAIL')
->setCellValue('M1', 'TRAN_XMLIN')
->setCellValue('N1', 'TRAN_XMLOUT');

$objPHPExcel->getActiveSheet(0)->setTitle('Precios');
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFont()
->setBold(true)
->setSize(9);
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->getStartColor()->setARGB('FFFF00');
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->setAutoFilter('A1:N1');
$objPHPExcel->getActiveSheet()->freezePane('A2');

$objPHPExcel->createSheet();

$objPHPExcel->setActiveSheetIndex(1)
->setCellValue('A1', 'CANAL')
->setCellValue('B1', 'COD_HOTEL')
->setCellValue('C1', 'NOMBRE')
->setCellValue('D1', 'TARIFA')
->setCellValue('E1', 'HABITACION')
->setCellValue('F1', 'FECHA_INI')
->setCellValue('G1', 'FECHA_FIN')
->setCellValue('H1', 'RECUENTO')
->setCellValue('I1', 'PUBLICADO')
->setCellValue('J1', 'ERROR_DESCRIPTION')
->setCellValue('K1', 'ERROR_DETAIL')
->setCellValue('L1', 'TRAN_XMLIN')
->setCellValue('M1', 'TRAN_XMLOUT');

$objPHPExcel->getActiveSheet(1)->setTitle('Cupos');
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFont()
->setBold(true)
->setSize(9);
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFill()->getStartColor()->setARGB('FFFF00');
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->setAutoFilter('A1:M1');
$objPHPExcel->getActiveSheet()->freezePane('A1');

$objPHPExcel->createSheet();

$objPHPExcel->setActiveSheetIndex(2)
->setCellValue('A1', 'CANAL')
->setCellValue('B1', 'COD_HOTEL')
->setCellValue('C1', 'NOMBRE')
->setCellValue('D1', 'TARIFA')
->setCellValue('E1', 'HABITACION')
->setCellValue('F1', 'FECHA_INI')
->setCellValue('G1', 'FECHA_FIN')
->setCellValue('H1', 'RECUENTO')
->setCellValue('I1', 'PUBLICADO')
->setCellValue('J1', 'ERROR_DESCRIPTION')
->setCellValue('K1', 'ERROR_DETAIL')
->setCellValue('L1', 'TRAN_XMLIN')
->setCellValue('M1',  'TRAN_XMLOUT');

$objPHPExcel->getActiveSheet(2)->setTitle('Normas');
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFill()->getStartColor()->setARGB('FFFF00');
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->setAutoFilter('A1:M1');
$objPHPExcel->getActiveSheet()->freezePane('A1');
/**
* Usamos un iterador para darle estilos a cada columna del excel
*/
$fileSystem = new DirectoryIterator("C:\Windows\Temp");
chdir("C:\Windows\Temp");
foreach ($fileSystem as $tempFile) {
if (preg_match("/price\d*.csv/", $tempFile->getFilename())) {
$objPHPExcel->setActiveSheetIndex(0);
$objReader = new PHPExcel_Reader_CSV();
$objReader->setInputEncoding('CP1252');
$objReader->setDelimiter(';');
$objReader->setEnclosure('');
$objReader->setLineEnding("\n");
$objReader->setSheetIndex(0);
$objReader->loadIntoExisting($tempFile->getFilename(), $objPHPExcel);
} else if (preg_match("/allotment\d*.csv/", $fileSystem->getFilename())) {
$objPHPExcel->setActiveSheetIndex(1);
$objReader = new PHPExcel_Reader_CSV();
$objReader->setInputEncoding('CP1252');
$objReader->setDelimiter(';');
$objReader->setEnclosure('');
$objReader->setLineEnding("\n");
$objReader->setSheetIndex(0);
$objReader->loadIntoExisting($tempFile->getFilename(), $objPHPExcel);
} else if (preg_match("/price\d*.csv/", $fileSystem->getFilename())) {
$objPHPExcel->setActiveSheetIndex(2);
$objReader = new PHPExcel_Reader_CSV();
$objReader->setInputEncoding('CP1252');
$objReader->setDelimiter(';');
$objReader->setEnclosure('');
$objReader->setLineEnding("\n");
$objReader->setSheetIndex(0);
$objReader->loadIntoExisting($tempFile->getFilename(), $objPHPExcel);
} else {
continue;
}
$fileSystem->next();
}

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
/**
* Cogemos el index de la hoja activa en el momento para poder iterar
* entre las hojas
*/
$objPHPExcel->setActiveSheetIndex($objPHPExcel->getIndex($worksheet));

$sheet = $objPHPExcel->getActiveSheet();
$cellIterator = $sheet->getRowIterator()->current()->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(true);
/**
* Mediante este foreach le damos el formato que queramos a las columnas,
* si la columna es "mayor"(alfabéticamente) a la J se le da un width
* de 40, si no tiene autoSize
*/
foreach ($cellIterator as $cell) {
//print_r($sheet->getColumnDimension($cell->getColumn()));
if ($sheet->getColumnDimension($cell->getColumn())->getColumnIndex() > "J") {
$sheet->getColumnDimension($cell->getColumn())->setAutoSize(false);
$sheet->getColumnDimension($cell->getColumn())->setWidth(40);
$sheet->getDefaultStyle()->getFont()->setName('Calibri')->setSize(9);
} else {
$sheet->getColumnDimension($cell->getColumn())->setAutoSize(true);
$sheet->getDefaultStyle()->getFont()->setName('Calibri')->setSize(9);
}
}
}

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('php://output');
Die Ausgabe, die es machen sollte, ist die folgende: https://ufile.io/a1a1b

Könnte Helfen Sie mir bitte bei diesem Problem? Vielen Dank im Voraus für Ihre Zeit und Mühe.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • SSIS Verwenden von Skript -Task - XLS in CSV konvertieren
    by Anonymous » » in C#
    0 Replies
    6 Views
    Last post by Anonymous
  • Die Datei 'C: \ Windows \ System32 \ inetsrv \ example.xls' konnte nicht finden
    by Guest » » in C#
    0 Replies
    14 Views
    Last post by Guest
  • DynamicReports: Problem mit dem XLS-Exporter
    by Anonymous » » in Java
    0 Replies
    10 Views
    Last post by Anonymous
  • Laden Sie Cache -Daten aus Excel mit PHPExcel
    by Anonymous » » in Php
    0 Replies
    5 Views
    Last post by Anonymous
  • Phpexcel mit dem richtigen Aussehen
    by Anonymous » » in Php
    0 Replies
    0 Views
    Last post by Anonymous