php 如何在单元格中设置不同的字体大小

t30tvxxf  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(144)
$rowIndex = 1;
foreach ($request->warehouses as $warehouse) {
    $whId = $asset['id_fixed_asset'];
    $warehouse = Warehouse::find($whId);
    if ($warehouse) {
            foreach ($rowDetails as $rowDetail) {
                $fieldName = $rowDetail['id_field'];
                $fieldValue = $warehouse->$fieldName;
                $fontSize = $rowDetail['font_size'];
                $cellData = "$fieldValue\n";
                $sheet->setCellValue('A' . $rowIndex, $cellData);
                $sheet->getStyle('A' . $rowIndex)->getAlignment()->setWrapText(true);
                $sheet->getStyle('A' . $rowIndex)->getFont()->setSize($fontSize);
                
                $rowIndex++;
            }
        
    }
}

在此代码中,field_value具有不同的font_size,并在每个单元格中分隔开:

我想制作一个导出Excel文件,其格式为每个field_value都有一个已设置的font_size值,并且field_values在单元格中由一个新行分隔(换行文本),而来自每个fixed_asset的新数据将在新单元格中分隔。例如:

8i9zcol2

8i9zcol21#

要在单个单元格中设置不同的字体大小,并在单元格中用新行(换行)分隔field_values,可以使用PHPEcel提供的RichText功能。

foreach ($rowDetails as $rowDetail) {
    $fieldName = $rowDetail['id_field'];
    $fieldValue = $warehouse->$fieldName;
    $fontSize = $rowDetail['font_size'];
    $richText = new \PhpOffice\PhpSpreadsheet\RichText\RichText();
    $textRun = $richText->createTextRun($fieldValue);
    $textRun->getFont()->setSize($fontSize);
    $cellData = $richText;
    $sheet->setCellValue('A' . $rowIndex, $cellData);
    $sheet->getStyle('A' . $rowIndex)->getAlignment()->setWrapText(true);

    $rowIndex++;
}

相关问题