【问题标题】:PHP Excel Writer Wrap textPHP Excel Writer 自动换行
【发布时间】:2020-10-27 11:23:31
【问题描述】:

我正在使用这个插件,我知道它不是最好的,但我没有时间重写所有这些脚本。我需要知道如何启用文本换行。网站上的incomplete documentation 一点帮助都没有。

我尝试过使用 1 和 'wrap' 作为数组中的参数,但没有成功。

有人让这个工作吗?

【问题讨论】:

  • 您的单元格是否包含实际的换行符(“\n”)或者您只是希望它在空白处换行?顺便说一句,setTextWrap() 不接受任何参数
  • 不,它不包含换行符。
  • 它必须接受参数,因为它如何知道需要文本换行的位置?
  • 如果您查看启用自动换行的实际文档,它不需要参数。自动换行是一种格式的布尔状态(true 或 false),setTextWrap() 始终将其设置为 TRUE……您可以传递一个参数,它会被简单地丢弃。
  • 我明白你的意思。如答案所示,我以错误的方式接近它! :)

标签: php spreadsheet-excel-writer


【解决方案1】:

如果要使用构造 addFormat(),则 wrapText 属性的名称必须为 'wrap'。

你写的:'textWrap' => 1

你应该:'wrap' => true 或 'wrap' => 1

例如:

$style = array(
    'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        'wrap' => true
    )
);
$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($style);

单元格 A1 的结果是居中对齐,文字环绕

【讨论】:

【解决方案2】:

好的,想通了。我试图这样做:

$format_caption =& $workbook->addFormat(array('size' => 11, 'fontFamily' => 'Calibri', 'numformat' => '@', 'bold' => 1, 'left' => 1, 'top' => 1, 'bottom' => 1, 'right' => 1, 'vAlign' => 'vcenter', 'align' => 'center', 'fgcolor' => 50, 'textWrap' => 1));

但是设置'textWrap' => 1 不起作用。

所以我稍微改了一下:

$format_caption =& $workbook->addFormat(array('size' => 11, 'fontFamily' => 'Calibri', 'numformat' => '@', 'bold' => 1, 'left' => 1, 'top' => 1, 'bottom' => 1, 'right' => 1, 'vAlign' => 'vcenter', 'align' => 'center', 'fgcolor' => 50));
$format_caption -> setTextWrap();

这解决了我的问题。

【讨论】:

    【解决方案3】:

    textWrap 不起作用,因为您设置了 ROW 高度,例如:

    $worksheet -> setRow($numRow, 17);
    

    删除此行,行高将自动计算。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 2015-01-04
      • 1970-01-01
      相关资源
      最近更新 更多