Clone spreadsheet loose drawings #2663
Unanswered
PasCapableTrouverUnNom
asked this question in
Q&A
Replies: 1 comment
-
|
The following code, based substantially on yours, should do what you want. //open the final spreadsheet
$spreadsheetFinale = new Spreadsheet();
$exportSelected = [
'discussion.2663.file1.xlsx',
'discussion.2663.file2.xlsx',
];
//I open multiple spreadsheets ($exportSelected is that list) and add their sheet to the new file
$fileNumber = 0;
foreach ($exportSelected as $selected) {
++$fileNumber;
//Open the Model
$reader = new XlsxReader();
$spreadsheet = $reader->load($selected);
//For each sheet of the $NomFichier I clone the sheet in the new file $SpreadsheetFinale
foreach ($spreadsheet->getAllSheets() as $sheet) {
//Select the sheet
$title = $sheet->getTitle();
$OutputSheet = "file$fileNumber" . '_' . $title;
$newWorksheet = $spreadsheet->duplicateWorksheetByTitle($title);
//add the sheet to the new file
$ws = $spreadsheetFinale->addExternalSheet($newWorksheet);
//Change the name of the worksheet in the new spreadsheet
$ws->setTitle($OutputSheet);
}
$spreadsheet->disconnectWorksheets();
}
//Once all worksheets has been added we delete the worksheet named 'Worksheet' which is default when we create a spreadsheet
$spreadsheetFinale->setActiveSheetIndexByName('Worksheet');
$sheetIndex = $spreadsheetFinale->getActiveSheetIndex();
$spreadsheetFinale->removeSheetByIndex($sheetIndex);
//Create a new writer to write the new spreadsheet
$NomFichierFinal = 'discussion.2663.merged.xlsx';
$writerFinal = new XlsxWriter($spreadsheetFinale);
$writerFinal->save($NomFichierFinal);
echo "saved $NomFichierFinal\n"; |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I know this was an issue that has been solved from previous versions (Used to work on 1.14 but not anymore in 1.21)
Summary: Cloning a worksheet loose drawing (in 1.14 we used to lost only parameters)
Note:
Any hint or path would be appreciated... I saw some similar problem in very old post but nothing recent and the solutions do not seems to work.
Thanks
Beta Was this translation helpful? Give feedback.
All reactions