我正在尝试存储一些特定的数组项,以便我知道要在laravel excel中设置样式的行
我想做的是每次执行array_push时都增加迭代器$rowCount
,但是每当我专门为$groupItem
处理array_push时,我都希望将计数存储在{{1 }}这样,我可以将样式仅应用于那些行。
$boldRows
类别1有3个产品(共4行),类别2有2个产品(共3行),从第2行开始,总共有7行。因此,我的预期结果是{{1 }}则类别行将包含2和6(因为我的计数从2开始,然后处理3个产品,所以下一个类别行在6)
我该如何正确实现?
答案 0 :(得分:1)
我会认为,每次将新元素推送到数组中并跟踪要加粗的行时,您只需要增加行数即可。
$rowCount = 2; //since I have a sticky header in the excel file I start the count at 2
$boldRows = array();
foreach($prices->groups as $group){
$groupItem = array();
$groupItem["category_code"] = $group->category_code;
$groupItem["category_name"] = $group->category_name;
$groupItem["category_description"] = $group->category_description;
array_push($allgroupResult, $groupItem);
array_push($boldRows, $rowCount++); // Store count & increment
foreach($group->skus as $sku){
$skuItem = array();
$skuItem["identifier"] = $sku->info->identifier;
array_push($allgroupResult, $skuItem);
$rowCount++; // Just increment count
}
}
您可能需要根据行与数组的匹配方式来调整$rowCount
-数组从0开始,我不知道行将如何建立。
基于PHPExcel Make first row bold和行号excel Convert A to 1 B to 2 ... Z to 26 and then AA to 27 AB to 28 (column indexes to column references in Excel)的行转换(针对PHP进行了修改),您可以使用类似...
foreach ( $boldRows as $row ) {
$cell_name = excelColumnFromNumber($row)."1";
$objPHPExcel->getActiveSheet()->getStyle( $cell_name )->getFont()->setBold( true );
}
function excelColumnFromNumber($column)
{
$columnString = "";
while ($column > 0)
{
$currentLetterNumber = ($column - 1) % 26;
$columnString = chr($currentLetterNumber + 65) . $columnString;
$column = ($column - ($currentLetterNumber + 1)) / 26;
}
return $columnString;
}