PhpExcel单元格中的新行

aut*_*tle 1 php phpexcel phpoffice

我所做的:

  1. 从db查询数据
  2. 分解数据并插入\n
  3. 准备数组
  4. 打开模板
  5. 将数组插入到模板中
  6. 尝试用新行替换 \n

如何找到 \n 并插入新行?例如,我在 A1 中有下一个文本“One\nTwo”。我从 A1 读取文本

$ltr='A1';
$vle=$spreadsheet->getActiveSheet()->getCell($ltr);
Run Code Online (Sandbox Code Playgroud)

在此之后,我尝试在 A1 中再次在 A1 中插入文本并将 \n 替换为一个单元格中的新行

$spreadsheet->getActiveSheet()->getCell($ltr)->setValue("${vle}");
$spreadsheet->getActiveSheet()->getStyle($ltr)->getAlignment()->setWrapText(true);
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用。

例如: 在此处输入图片说明

因此,如果我打开带有文本的模板,则无法替换单元格中的 \n。我能做什么?

更新。我尝试使用 char(10) 并插入公式(例如)="hello"&char(10)&"world"但仅插入="hello"&char(10)

Mar*_*ker 6

如果您在PHPspreadsheet github 问题日志上询问此问题,那么这是您对 PHP 字符串理解的问题。

$dataArray = [
    ['2010', 'Q1', 'United\nStates', 790],
    ['2010', 'Q2', 'United States', 730],
    ['2010', 'Q3', 'United States', 860]
]
Run Code Online (Sandbox Code Playgroud)

'\n'单引号中的A被视为文字\n;一个"\n"在双引号被视为一个新行字符。因此,要么使用双引号构建数组:

$dataArray = [
    ['2010', 'Q1', "United\nStates", 790],
    ['2010', 'Q2', "United States", 730],
    ['2010', 'Q3', "United States", 860]
]
Run Code Online (Sandbox Code Playgroud)

\n使用 str_replace将文字转换为新行:

$modified = str_replace('\n', "\n", $original);
Run Code Online (Sandbox Code Playgroud)