phpExcel不自动设置列宽
phpExcel doesn't set column width auto
我正在使用 phpExcel 构建一个 excel 文件。我填写了我需要的所有单元格,最后我在 excel 文件上设置了一些格式。我正在做的一件事是调整单元格宽度,但我得到了一个奇怪的结果。 None 的列设置为正确的宽度。一些设置为较大的宽度,而另一些则保留为原始宽度。我没有在任何地方使用粗体,只是在第一行使用了一些背景颜色。
这是我用于格式化的实际代码:
$header = 'A1:EK1';
$ews->getStyle($header)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('ff00008b');
$style = array(
'font' => array('bold' => false,
'color' => array('rgb' => 'FFFFFF'),
'size' => 12,
'name' => 'Verdana'),
'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,),
);
$ews->getStyle($header)->applyFromArray($style);
for ($col = ord('A'); $col <= ord('HK'); $col++)
{
$ews->getColumnDimension(chr($col))->setAutoSize(true);
}
我看了很多关于 SO 的问题并用谷歌搜索了一下,但我发现问题只出现在 csv 文件(我的是 xlsx)或粗体字体(我根本没有)的情况下。因为我还在学习这个库是如何工作的,所以我正在寻找一些帮助
如果列设置为 AutoSize,PHPExcel 会尝试根据列的计算值(任何公式的结果)以及格式掩码添加的任何其他字符(例如千位分隔符)来计算列宽.
默认为estimated
宽度:有更精确的计算方法,基于使用GD,还可以处理粗体和斜体等字体样式特征;但这是一个更大的开销,所以默认情况下它是关闭的。您可以使用
启用更准确的计算
PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
但是,autosize 并不适用于所有 Writer 格式...CSV 文件不支持任何格式,仅支持数据,因此在编写 CSV 文件时无法应用列宽(即格式)
$objPHPExcel->getActiveSheet()->getColumnDimension(COLUMN)->setAutoSize(true);
我正在使用 phpExcel 构建一个 excel 文件。我填写了我需要的所有单元格,最后我在 excel 文件上设置了一些格式。我正在做的一件事是调整单元格宽度,但我得到了一个奇怪的结果。 None 的列设置为正确的宽度。一些设置为较大的宽度,而另一些则保留为原始宽度。我没有在任何地方使用粗体,只是在第一行使用了一些背景颜色。 这是我用于格式化的实际代码:
$header = 'A1:EK1';
$ews->getStyle($header)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('ff00008b');
$style = array(
'font' => array('bold' => false,
'color' => array('rgb' => 'FFFFFF'),
'size' => 12,
'name' => 'Verdana'),
'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,),
);
$ews->getStyle($header)->applyFromArray($style);
for ($col = ord('A'); $col <= ord('HK'); $col++)
{
$ews->getColumnDimension(chr($col))->setAutoSize(true);
}
我看了很多关于 SO 的问题并用谷歌搜索了一下,但我发现问题只出现在 csv 文件(我的是 xlsx)或粗体字体(我根本没有)的情况下。因为我还在学习这个库是如何工作的,所以我正在寻找一些帮助
如果列设置为 AutoSize,PHPExcel 会尝试根据列的计算值(任何公式的结果)以及格式掩码添加的任何其他字符(例如千位分隔符)来计算列宽.
默认为estimated
宽度:有更精确的计算方法,基于使用GD,还可以处理粗体和斜体等字体样式特征;但这是一个更大的开销,所以默认情况下它是关闭的。您可以使用
PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
但是,autosize 并不适用于所有 Writer 格式...CSV 文件不支持任何格式,仅支持数据,因此在编写 CSV 文件时无法应用列宽(即格式)
$objPHPExcel->getActiveSheet()->getColumnDimension(COLUMN)->setAutoSize(true);