Php 将MySQL数据导出到Excel矩阵
我有一个名为“relations”的MySQL表,如下所示:Php 将MySQL数据导出到Excel矩阵,php,mysql,excel,export-to-excel,Php,Mysql,Excel,Export To Excel,我有一个名为“relations”的MySQL表,如下所示: from to count ------------- A B 456 A C 233 A D 463 B A 766 B C 215 B D 142 (实际上,“from”和“to”包含人名,表中包含150行)。我现在需要以(150x150)矩阵形式将此表导出到excel文件(不是CSV),如下所示: | A B C D --+-----------------
from to count
-------------
A B 456
A C 233
A D 463
B A 766
B C 215
B D 142
(实际上,“from”和“to”包含人名,表中包含150行)。我现在需要以(150x150)矩阵形式将此表导出到excel文件(不是CSV),如下所示:
| A B C D
--+------------------
A | 0 456 233 463
B | 766 0 215 142
| A B C D
--+------------------
A |
B |
<?php
[..]
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Expires: 0');
[..]
?>
我需要从PHP内部执行此操作,但不知道如何执行此操作。我是否首先创建一个空Excel文件,命名所有行和列?(就像这样:)
如果我这样做,那么如何连接到正确的单元格以插入正确的计数?还是我从PHP中一起编写Excel文件
此外,实际上,该表不是结构化的,因此它看起来像:
from to
-------
A C
F K
F L
B Z
M P
P A
所以我认为我不能一个单元格一个单元格地写,一行一行地写。或者我应该首先查询数据库,按“from”列排序,然后按“to”列排序
如果您能帮助我开始学习,我们将不胜感激。- 从mysql获取数据
- 使用获取的数据构建一个数组(db数据的顺序无关紧要,您可以随时按键/值对数组进行排序)
- 使用PHPExcel(或ExcelWriter类,或其他任何类)生成excel文件
- 通过逐列逐行迭代数据数组生成文件李>
Excel也能理解html表格。所以你可以:
获取数据
迭代并构建一个表,就像您希望在Excel中显示的那样
设置要下载的头和MIME类型
在Excel中打开(您将收到一条警告消息)
标题应如下所示:
| A B C D
--+------------------
A | 0 456 233 463
B | 766 0 215 142
| A B C D
--+------------------
A |
B |
<?php
[..]
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Expires: 0');
[..]
?>
谢谢,我最终构建了一个HTML表(如下所示)以导入Excel。但编写CSV并导入Excel也是一个简单的选择:)谢谢!您是否尝试过将excel导出到txt。格式如果没有,你应该试试,你可以看到文本的结构,然后你可以简单地把它放在你的数据库中。只需将它导出为CSV文件-这是最好的选择。当你导出为CSV时,你可以将它加载到Excel中,执行另存为并将其转换为Excel特定的格式。