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
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
$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'); [/code]
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.
Ich muss von der angehängten Datei in die SQL -Tabelle exportieren, aber ich erhalte diesen Fehler. Was ist los?
String ExcelFileExtension = Path.GetExtension(fileBrowser.FileName);
//Check the...
Ich stehe derzeit vor dem folgenden Problem:
Ausnahme im Thread „main“ java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Sheet
bei net.sf.dynamicreports.jasper.transformation...