apoc.export.xls.graph

过程 Apoc 扩展

apoc.export.xls.graph(graph,file,config) - 将给定图对象作为 xls 导出到提供的文件

签名

apoc.export.xls.graph(graph :: MAP?, 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?)

输入参数

名称 类型 默认

graph(图)

MAP?

null

file

STRING?

null

config

MAP?

null

输出参数

名称 类型

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 目录中)

针对 XLS 文件

用法示例

本节中的示例基于以下示例图

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 可视化显示了导入的图

play movies
图 1. 电影图谱可视化

apoc.export.xls.graph 过程将虚拟图导出为 CSV 文件或数据流。

本节中的示例基于一个包含所有 PRODUCED 关系及该关系两端节点的虚拟图。然后,我们可以将该虚拟图导出为 movies-producers.xls

MATCH path = (:Person)-[produced:PRODUCED]->(:Movie)
WITH collect(path) AS paths
CALL apoc.graph.fromPaths(paths, "producers", {})
YIELD graph AS g
CALL apoc.export.xls.graph(g, "movies-producers.xls", {})
YIELD file, nodes, relationships, properties
RETURN file, nodes, relationships, properties;
表 1. 结果
file 节点 relationships 属性

"movies-producers.xls"

2

1

5

movies-producers.xls 包含针对每个节点标签和关系类型的独立工作表。在本例中,它包含以下工作表

  • Movie

  • Person

  • PRODUCED

我们可以使用 apoc.load.xls 查询这些工作表的内容。让我们查看其中的几个工作表

CALL apoc.load.xls("file://movies-producers.xls", "Person");
表 2. 结果
行号 list Map

0

[7, 1952, "Joel Silver"]

{name: "Joel Silver", <nodeId>: 7, born: 1952}

CALL apoc.load.xls("file://movies-producers.xls", "PRODUCED");
表 3. 结果
行号 list Map

0

[6, 7, 0]

{<startNodeId>: 7, <endNodeId>: 0, <relationshipId>: 6}

© . This site is unofficial and not affiliated with Neo4j, Inc.