php - 盒子/喷口没有写满行
问题描述
我正在尝试使用 Box/Spout 将数据写入 Excel 工作表,使用写入器将数组传递给addrow()
函数,但是当 Excel 文件完成时,工作表上缺少数据列......
该数组正是我需要的数据,我var_dump()
用它来显示数据。数据最初来自 mysql 查询,所以我认为直接从mysqli_fetch_assoc
函数添加行会起作用。遇到这个问题后,我创建了一个名为 row 的变量$newRow
并将其声明为一个数组,其中包含 mysql fetch 数据。这仍然没有奏效。下面的代码来解释我的困惑......
这是我要添加的行的 var_dump:
var_dump($newRow);
array(29) {
[0]=> string(14) "X"
[1]=> string(6) "X"
[2]=> string(4) "X"
[3]=> string(9) "X"
[4]=> string(2) "X"
[5]=> string(1) "X"
[6]=> string(1) "X"
[7]=> string(8) "X"
[8]=> string(0) ""
[9]=> string(8) "X"
[10]=> string(16) "X"
[11]=> string(16) "X"
[12]=> string(0) "X"
[14]=> string(7) "X"
[15]=> string(2) "X"
[16]=> string(2) "X"
[17]=> string(1) "X"
[18]=> string(2) "X"
[19]=> string(2) "X"
[20]=> string(2) "X"
[21]=> string(15) "X"
[22]=> string(9) "X"
[23]=> string(2) "X"
[24]=> string(5) "X"
[25]=> string(16) "Y"
[26]=> string(9) "Y"
[27]=> string(2) "Y"
[28]=> string(5) "Y"
}
出于隐私原因,我需要用 X 和 Y 替换真实数据。请理解,这样做我用这些字母替换了真实存在的数据。我会包括我使用的 mysql 查询,但它是不必要的,因为它清楚地成功提取了信息......
下一行是:
$writer->addrow($newRow);
请记住,代码看起来完全像这样:
var_dump($newRow);
echo "<br/><br/>";
$writer->addrow($newRow);
$newRow
并且之前的$writer->addrow
功能没有变化。
不幸的是,excel工作表另存为
|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|
在一行中与应该是什么:
|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|Y|Y|Y|Y|
我已经为此困惑了几个小时,还没有找到解决方案。我希望我的问题有意义,并且非常感谢任何建议。
解决方案
尝试这个
$writer->addRow(WriterEntityFactory::createRowFromArray($newRow));
推荐阅读
- matlab - 如何在 MATLAB 代码中与 GD 收敛?显然在矩阵维度上显示错误
- python - opencv 在转换为 CIELUV 和 CIELAB 时给出的像素范围与标准不同
- javascript - 当 props 改变时渲染组件,否则不显示
- javascript - 在 react.js 中使用 promise 获取数据。状态为空。为什么?
- javascript - 通过单击元素打开 icCube 仪表板(带参数)
- vue.js - 为什么这个 Vue3 转换会破坏数据绑定?
- object - Delphi Sydney Object Inspector 意外消隐
- node.js - 将 Blob 数据从 MySql DB 转换到谷歌云存储时出错
- c# - 如何在 C# 中调用参数类型的参数构造函数?
- javascript - 音频 .play 方法应该什么时候开始播放音频?