这是一个非常简单的问题,但我找不到最简单的解决方案。我试图呈现Excel表格将在这种格式下彼此相邻:
+---+-------+-------+-------+-------+-------+-------+-------+
| | B | C | D | E | F | G | H |
+---+-------+-------+-------+-------+-------+-------+-------+
| 1 | TITLE |
+---+-------------------------------------------------------+
| 2 | IN | OUT | NETTO | TEXT | TEXT | TEXT | TEXT |
+---+-------+-------+-------+-------+-------+-------+-------+
| 3 | value | value | value | value | value | value | value |
+---+-------+-------+-------+-------+-------+-------+-------+
为了呈现标题,我从单元格B1开始到单元格H1,所以我的第一次尝试是这样的:
$column = 'B'; // default column number
foreach ($data as $tables) {
$r = 1; // row number
foreach ($tables as $table) {
$this->excel->getActiveSheet()->SetCellValue($column . $r . ':' . $column + 6 . $r, $connector_name);
$r++;
// then row with header r++
// then row with values
$column++;
// other table starting in cell I1
}
}
在每个表格中,我从第1行开始,我需要水平移动,所以这就是为什么我需要通过递增移动到其他列。问题是在有标题的单元格中,我需要单元格B1:H1。B1很简单,但我不知道如何将列递增6以获得字母H -$column + 6
不起作用。有什么想法如何用简单的解决方案?
3条答案
按热度按时间ou6hu8tu1#
如果您只对
A
到Z
之间的列感兴趣,那么@splash58的答案将起作用。如果您需要使用
Z
以外的列,那么我建议使用PHPExel的内置函数来操作列地址。或者类似于:
它也适用于
Z
以外的Excel列地址wz8daaqr2#
函数order和chr将帮助您
请注意,此操作仅在字母// Z之前有效。
aor9mmx13#
对于任何使用更新的PHPSpreadsheet库寻找正确方法的人:
另请参见API文档。