#phpexcel
#phpexcel
Вопрос:
Я использую библиотеку PHPExcel для многих манипуляций с Excel в сочетании с PHP / MySQL. Это мне очень помогает.
Но я не могу понять, как разделить лист документа Excel на лист, где каждый лист создается как новый документ Excel.
В то же время мне также нужно удалить пустые строки, которые находятся в исходном документе, в новых созданных документах Excel (очистка итоговых документов).).
Каков наилучший способ сделать это?
Мы высоко ценим все ваши впечатления.
С наилучшими пожеланиями.
Ответ №1:
Я нашел способ сделать то, что хотел.
Вот решение (возможно, не лучший способ, но оно работает достаточно хорошо) :
$file = $_POST['file'];
$filename = pathinfo($file, PATHINFO_FILENAME);
require_once 'phpexcel/Classes/PHPExcel.php';
$xls = new PHPExcel();
$xlsReader= new PHPExcel_Reader_Excel5();
$xlsTemplate = $xlsReader->load($file);
$sheet1 = $xlsTemplate->getSheetByName('Sheet1');
$xls->addExternalSheet($sheet1,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet1.xls");
$sheet2 = $xlsTemplate->getSheetByName('Sheet2');
$xls->addExternalSheet($sheet2,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet2.xls");
$sheet3 = $xlsTemplate->getSheetByName('Sheet3');
$xls->addExternalSheet($sheet3,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet3.xls");
$sheet4 = $xlsTemplate->getSheetByName('Sheet4');
$xls->addExternalSheet($sheet4,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet4.xls");
$sheet5 = $xlsTemplate->getSheetByName('Sheet5');
$xls->addExternalSheet($sheet5,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet5.xls");
$sheet6 = $xlsTemplate->getSheetByName('Sheet6');
$xls->addExternalSheet($sheet6,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet6.xls");
Затем мой исходный файл Excel, содержащий 6 листов, теперь разделен на 6 файлов Excel, как я и хотел.
Как вы можете видеть, это было не так сложно выпустить, но документация настолько запутана…
Надеюсь, это может помочь.