1

我所做的:

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

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

$ltr='A1';
$vle=$spreadsheet->getActiveSheet()->getCell($ltr);

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

$spreadsheet->getActiveSheet()->getCell($ltr)->setValue("${vle}");
$spreadsheet->getActiveSheet()->getStyle($ltr)->getAlignment()->setWrapText(true);

但这对我不起作用。

例如: 在此处输入图像描述

所以,如果我用文本打开模板,我无法在单元格中替换 \n。我能做些什么?

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

4

4 回答 4

8

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

$dataArray = [
    ['2010', 'Q1', 'United\nStates', 790],
    ['2010', 'Q2', 'United States', 730],
    ['2010', 'Q3', 'United States', 860]
]

单引号中的A'\n'被视为文字\n;双引号中的a"\n"被视为换行符。所以要么使用双引号构建你的数组:

$dataArray = [
    ['2010', 'Q1', "United\nStates", 790],
    ['2010', 'Q2', "United States", 730],
    ['2010', 'Q3', "United States", 860]
]

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

$modified = str_replace('\n', "\n", $original);
于 2017-05-08T08:58:24.137 回答
0

在 Excel 公式中使用“char(10)”。& = 连接,并且 char(10) = \n

$textWithNewLine = '="hello"&char(10)&"world"';
$spreadsheet->getActiveSheet()->getCell($ltr)->setValue($textWithNewLine);
于 2017-05-07T17:19:18.430 回答
0

当我爆炸/内爆 str 并插入 \n 我使用''。需要使用“”

implode("\n", $array);
于 2017-05-07T20:50:58.423 回答
0

如果您MoodleExcelWorkbook在 Moodle Excel 应用程序中使用类,并且想要在单元格中设置自动换行/换行,请使用如下代码:

require_once $CFG->libdir . '/excellib.class.php';
$workbook = new \MoodleExcelWorkbook("-");
$workbook->send('YOUR_FILE_NAME.xlsx');
$worksheet = $workbook->add_worksheet('YOUR_SHEET_NAME');
/* do your some stuff here */
/* make 'text_wrap' => true in $format attribute */
$worksheet->write_string(1/*row*/, 1/*col*/, 'YOUR_VALUE', ['text_wrap' => true]);
$workbook->close();
于 2021-01-02T10:59:34.557 回答