$mergedWorkbook=new Spreadsheet();
foreach ($files as $file) {
$spreadsheet = IOFactory::load($file);
$worksheets = $spreadsheet->getAllSheets();
foreach ($worksheets as $worksheet) {
if ($mergedWorkbook->sheetNameExists($worksheet->getTitle())) {
$worksheet->setTitle($worksheet->getTitle() . rand(1,40));
}
$mergedWorkbook->addExternalSheet($worksheet);
}
}
$mergedWorkbook->removeSheetByIndex(0);
$writer = IOFactory::createWriter($mergedWorkbook, 'Xlsx');
$folderName=self::createFolder();
$writer->save(
"{$_SERVER['DOCUMENT_ROOT']}/upload/tmp/{$folderName}/mergedFilesDoc.xlsx"
);// other_code before 1399 line
foreach ($this->getWorksheetIterator() as $sheet) {
// for all cells
foreach ($sheet->getCoordinates(false) as $coordinate) {
$cell = $sheet->getCell($coordinate);
$cell->setXfIndex($map[$cell->getXfIndex()]?$map[$cell->getXfIndex()]:0); // code modification
}
// for all row dimensions
foreach ($sheet->getRowDimensions() as $rowDimension) {
if ($rowDimension->getXfIndex() !== null) {
$rowDimension->setXfIndex($map[$rowDimension->getXfIndex()]?$map[$rowDimension->getXfIndex()]:0); // code modification
}
}
// for all column dimensions
foreach ($sheet->getColumnDimensions() as $columnDimension) {
$columnDimension->setXfIndex($map[$columnDimension->getXfIndex()]?$map[$columnDimension->getXfIndex()]:0); // code modification
}
// also do garbage collection for all the sheets
$sheet->garbageCollect();
}
// other_code after 1420 line
$(document).ready(function(){
var sliders = $('.slick-super-slider');
var nextArrows = $('.next-slide');
sliders.each(function(index, element) {
var $slider = $(element);
var $nextArrow = $(nextArrows[index]);
$slider.slick({
slidesToShow: 3,
slidesToScroll: 3,
prevArrow: false,
nextArrow: $nextArrow,
});
});
}); >> let a = 0;
<- undefined
>> window.a
<- undefinedfunction foo(x) {
this.x++
}x и свойство x объекта this - это разные вещи. window или произвольного объекта - то делать надо это явно и прямо. Например:window.x = 0
window.x++let propName = 'a'
window[propName] = 0
window[propName]++
function decrypt(encryptedText, key) {
var decryptedBytes = CryptoJS.AES.decrypt(
{
ciphertext: CryptoJS.enc.Base64.parse(encryptedText)
},
CryptoJS.enc.Utf8.parse(key),
{ mode: CryptoJS.mode.ECB }
);
var plaintext = decryptedBytes.toString(CryptoJS.enc.Utf8);
return plaintext;
}
var encryptedText = "P6WsUEHMRTa620LtYJ3Nqu9yKhGev0ZL4Ps+z61kWN4="; // Замените на свой зашифрованный текст
var key = "mysecretpassword"; // Замените на свой ключ
var decryptedText = decrypt(encryptedText, key);
console.log("Decrypted Text:", decryptedText); function createApp () { //добавляем содержимое в html-вёрстку
// прочитать список
studentList = JSON.parse(localStorage.getItem("myKey") ?? '[]');
const container = document.querySelector('.conteiner'); // подключаем контейнер
const tableObj = createTable(); // создаем таблицу
container.append(tableObj.table); // добавляем в разметку созданную таблицу
const addBtn = document.querySelector('.add-btn'); // поключаем кнопку
addBtn.addEventListener('click', () => { // навешиваем событие на кнопку, чтобы при клике срабатывала функция
addStudent(studentsList, tableObj.tbody); // функция добавления студента из формы.
// При каждом обновлении сохраняем
localStorage.setItem("myKey",JSON.stringify(studentsList));
});
// А это не надо
// localStorage.setItem("myKey",JSON.stringify(studentsList));
}