Bitte setzen Sie Ihrem Problem einen der folgenden Stellen voran: [BUG] [PROPOSAL] [QUESTION].
Hallo @kurianic , das folgende Beispiel liest alle Blätter aus den Arbeitsmappen A und B und kopiert sie in eine neue Arbeitsmappe C. Bitte stellen Sie sicher, dass A und B keine Blätter mit demselben Namen enthalten.
// Load the workbooks to merge in a collection.
// This example is assuming they're stored in the Laravel storage folder.
$workbooks = collect([
'workbookA.xlsx',
'workbookB.xlsx',
])->map(function ($filename) {
return Excel::load(storage_path($filename));
});
// Create merged workbook
$workbookC = Excel::create('workbookC', function ($excel) use ($workbooks) {
// For each workbook to be merged
$workbooks->each(function ($workbook) use ($excel) {
// Get all the sheets
collect($workbook->getAllSheets())->each(function ($sheet) use ($excel) {
// And add them to the merged workbook
$excel->addExternalSheet($sheet);
});
});
})->save(); // save merged workbook to storage/exports/workbookC.xlsx
Hallo @stephanecoinon , ich möchte das gleiche Blatt mehrmals hinzufügen, um doppelte Namen zu vermeiden, habe ich $sheet->setTitle aufgerufen. aber es gibt mir eine Fehlermeldung "Blatt existiert nicht." wenn addExternalSheet direkt nach setTitle aufgerufen wird.
$sheet_original->setTitle("SHEET ".$i);
$sheets[$i] = $sheet_original;
$sheets[$i]->cell('I64', function($cell) use($i) { $cell->setValue($i); });
$excel->addExternalSheet($sheets[$i] );
@sarpkaya-xx versuche addSheet()
:
Excel::create('workbook', function ($excel) {
// Create first "original" sheet
$original = $excel->sheet('Sheet 1', function ($sheet) {
$sheet->fromArray([
['foo' => 'bar']
]);
});
// Copy the first sheet 4 times
for ($sheetCount = 2; $sheetCount <= 5; $sheetCount++) {
$copy = $original->getSheet()->copy();
$copy->setTitle("Sheet {$sheetCount}");
$excel->addSheet($copy);
}
})->save();
Hilfreichster Kommentar
@sarpkaya-xx versuche
addSheet()
: