php - 将 PHPSpreadsheet 中的所有文本居中并使单元格扩展以填充上下文

标签 php spreadsheet styling phpspreadsheet

我努力让所有单元格将上下文设置为居中并自动扩展,这样它们就不会相互重叠。

所以我尝试做的是:

  1. 将每个单元格中的信息设置为居中,因为这样可以更好地打印成 PDF 等。

  2. 根据单元格中的文本量扩展单元格。我不希望 A 中的信息在单元格 B 中重复。

我试过这段代码,但它似乎不起作用:

$styleArray = array(
            'borders' => array(
                'outline' => array(
                    'style' => Alignment::HORIZONTAL_CENTER,
                ),
            ),
        );

        $sheet ->getStyle('A1:D30')->applyFromArray($styleArray);

不过,如果我对一个单元格(中心上下文)执行此操作,它就可以工作。是不是这样:

$sheet->setCellValue('A2', $activitiesCount)->getStyle('A2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);

对于细胞扩张,我还没有找到解决方案来尝试。

如果可能的话,我很乐意只用一条命令在我所有的单元格上完成这两项操作。

最佳答案

这样就可以了:

要自动调整大小(单元格自动扩展),请执行以下操作:

$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);

注意

您必须为每一列单独执行此操作,因为 getColumnDimension 方法只能接受一列作为参数。

你已经弄清楚了水平对齐方式,但值得注意的是,你可以使用一个命令设置多个列的对齐方式。

$sheet->getStyle('A:B')->getAlignment()->setHorizontal('center');

至于设置单元格值,我希望您将其与与格式和样式相关的任何事情分开进行,只是为了分离关注点和提高可读性。

干杯。

关于php - 将 PHPSpreadsheet 中的所有文本居中并使单元格扩展以填充上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070754/

相关文章:

html - 标题的差距是多少?

php - 从 MySql 数据库中提取文本并将其拆分为网站上的段落

php - 我可以在不使用 joomla 后端的情况下安装 Joomla 扩展吗

javascript - 如何仅使用 Javascript 在 div 中显示整个选择元素

oracle - 从 Oracle 数据库创建 Excel 电子表格

html - HR有两种颜色

php - 如何根据日期时间搜索计算特殊日期和正常日期的总金额

regex - 通过 Google Sheets 正则表达式提取根域

numbers - 如何使用 AppleScript 在 Numbers 单元格中设置小数位数?

Intranet 站点上的 jQuery DataTables - getAttribute ('class' ) 返回 null