Export xlsx с разбивкой на файлы учитывая лимит строк
Есть небольшой код, который экспортирует в xlsx данный с базы данных. Все работает нормально.
include_once("xlsxwriter.class.php");
$sFileName = "FILE";
$save = $sFileName . ".xlsx";
$header = array(
'Бренд' => 'string',
'Артикул' => 'string',
'Наименование' => 'string',
'Описание' => 'string',
'Количество' => 'string',
'Цена' => 'price'
);
$sql = mysql_query("select * from price", Base::$db->_connectionID);
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', $header);
$writer->setAuthor($sFileName);
while ($aValue = mysql_fetch_array($sql)) {
$aOut = array();
$aOut[] = $aValue['brand'] ;
$aOut[] = $aValue['artikul'];
$aOut[] = $aValue['title'];
$aOut[] = $aValue['descriptions'];
$aOut[] = $aValue['stock'];
$aOut[] = $aValue['price'];
$writer->writeSheetRow('Sheet1', $aOut);
}
$writer->writeToFile($save);
Как сделать разбивку на части?
К примеру 500 строк в один файл и далее уже вывод: FILE_1.xlsx, FILE_2.xlsx итд.
Ответы (1 шт):
Автор решения: Kliraks
→ Ссылка
Вроде так должно работать
include_once("xlsxwriter.class.php");
$sFileName = "FILE";
$header = array(
'Бренд' => 'string',
'Артикул' => 'string',
'Наименование' => 'string',
'Описание' => 'string',
'Количество' => 'string',
'Цена' => 'price'
);
$sql = mysql_query("select * from price", Base::$db->_connectionID);
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', $header);
$writer->setAuthor($sFileName);
$i = 1;
$f = 1;
while ($aValue = mysql_fetch_array($sql)) {
if($i > (500 * $f)){
$sFileName = "FILE_".$f;
$f++;
}
$aOut = array();
$aOut[] = $aValue['brand'] ;
$aOut[] = $aValue['artikul'];
$aOut[] = $aValue['title'];
$aOut[] = $aValue['descriptions'];
$aOut[] = $aValue['stock'];
$aOut[] = $aValue['price'];
$writer->writeSheetRow('Sheet1', $aOut);
$writer->writeToFile($sFileName . ".xlsx");
$i++;
}