【问题标题】:PHPSpreadsheet textRotation to 90 not workingPHPSpreadsheet textRotation到90不起作用
【发布时间】:2017-12-22 15:55:38
【问题描述】:

我正在尝试使用文本 Rotation to 90 让单元格带有垂直文本,但它不起作用,所有文本都水平显示,也许我做错了什么? 这是我的php代码

$spreadsheet = new Spreadsheet();

// Create a new worksheet called "Technical Skills"
$technicalSkillsSheet = new Worksheet($spreadsheet, 'Technical Skills');
// Attach the "Technical Skills" worksheet as the first worksheet in the Spreadsheet object
$spreadsheet->addSheet($technicalSkillsSheet, TECHNICAL_SKILLS_INDEX);
$sheet = $spreadsheet->getSheet(TECHNICAL_SKILLS_INDEX);
foreach($term_sheet_array as $term_sheet){
    $sheet->setCellValue($term_sheet['cell'], $term_sheet['name']);
    $styleArray = array(
        'fill' => array(
            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
            'startColor' => array(
                'argb' => $term_sheet["color"],
            ),
        ),
        'alignment' => array(
            'wrapText' => TRUE,
            'textRotation' => 90,
            'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM,
        ),
    );
    $sheet->getStyle($term_sheet['cell'])->applyFromArray($styleArray);
    $color_key++;

    if($color_key >= count($sheetColors)){
       $color_key = 0;
    }
}

【问题讨论】:

  • 你用的是什么作家?并非所有 Writer 都支持文本旋转
  • 我正在使用 Xlsx,使用 PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer->save(drupal_realpath(ASSESMENTS_FOLDER) .'/hello world.xlsx');

标签: php phpspreadsheet


【解决方案1】:

简单:

$activeSheet->getStyle('A1')->getAlignment()->setTextRotation(90);

【讨论】:

    【解决方案2】:

    您可以通过两种方式定义文本旋转:

    第一种方式:

    $styleArray = [
        'font' => [
            'bold'  =>  true,
            'size'  =>  14,
        ],
        'alignment' => [
            'textRotation' => 90,
            'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
            'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER
        ]
    ];
    $activeSheet->getStyle('A1')->getAlignment()->applyFromArray($styleArray);
    

    第二种方式:

    $activeSheet->getStyle('A1')->getAlignment()->setTextRotation(90);
    

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 2018-06-22
      • 2017-10-29
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多