apoc.export.xls.all
过程 Apoc 扩展
apoc.export.xls.all(file,config) - 将整个数据库作为 xls 导出到提供的文件
签名
apoc.export.xls.all(file :: STRING?, config :: MAP?) :: (file :: STRING?, source :: STRING?, format :: STRING?, nodes :: INTEGER?, relationships :: INTEGER?, properties :: INTEGER?, time :: INTEGER?, rows :: INTEGER?, batchSize :: INTEGER?, batches :: INTEGER?, done :: BOOLEAN?, data :: STRING?)
输出参数
| 名称 | 类型 |
|---|---|
file |
STRING? |
source |
STRING? |
format |
STRING? |
节点 |
整数? |
relationships |
整数? |
属性 |
整数? |
time |
整数? |
rows |
整数? |
batchSize |
整数? |
batches |
整数? |
done |
布尔值? |
data |
STRING? |
安装依赖
为了加载 XLS 文件,我们使用了 Apache POI 库,它能很好地处理旧版和新版 Excel 格式,但体积较大。因此我们决定不将其包含在 apoc jar 包中,而是将其作为可选依赖项。
这些依赖项已包含在 apoc-xls-dependencies-2025.10.0-all.jar 中,可从 发布页面 下载。下载该文件后,应将其放置在 plugins 目录中并重启 Neo4j 服务器。
或者,您可以从 Maven 仓库下载这些 jar 包(同样需要放入 plugins 目录中)
使用示例
本节中的示例基于以下示例图
CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix);
下方的 Neo4j Browser 可视化显示了导入的图
apoc.export.xls.all 过程将整个数据库导出为 XLS 文件。
以下查询将整个数据库导出到文件 movies.xls
CALL apoc.export.xls.all("movies.xls", {});
| file | source | format | 节点 | relationships | 属性 | time | rows | batchSize | batches | done | data |
|---|---|---|---|---|---|---|---|---|---|---|---|
"movies.xls" |
"database: nodes(8), rels(7)" |
"xls" |
8 |
7 |
21 |
102 |
15 |
20000 |
1 |
TRUE |
NULL |
movies.xls 包含针对每个节点标签和关系类型的独立工作表。在此示例中,它包含以下工作表
-
Movie
-
Person
-
ACTED_IN
-
DIRECTED
-
PRODUCED
我们可以使用 apoc.load.xls 查询这些工作表的内容。让我们查看其中的几张工作表
CALL apoc.load.xls("file://movies.xls", "Movie");
| 行号 | list | Map |
|---|---|---|
0 |
[0, 1999, "Welcome to the Real World", "The Matrix"] |
{tagline: "Welcome to the Real World", |
CALL apoc.load.xls("file://movies.xls", "ACTED_IN");
| 行号 | list | Map |
|---|---|---|
0 |
[0, 1, 0, "Neo"] |
{ |
1 |
[1, 2, 0, "Trinity"] |
{ |
2 |
[2, 3, 0, "Morpheus"] |
{ |
3 |
[3, 4, 0, "Agent Smith"] |
{ |