apoc.export.xls.data

过程 Apoc 扩展

apoc.export.xls.data(nodes,rels,file,config) - 将给定节点和关系作为 xls 导出到提供的文件

签名

apoc.export.xls.data(nodes :: LIST? OF NODE?, rels :: LIST? OF RELATIONSHIP?, 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?)

输入参数

名称 类型 默认

节点

节点列表?

null

rels

关系列表?

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

apoc.export.xls.data 过程将指定的节点和关系导出到 XLS 文件。

以下查询将所有带有 :Person 标签且 name 属性以 L 开头的节点导出到文件 movies-l.csv

MATCH (person:Person)
WHERE person.name STARTS WITH "L"
WITH collect(person) AS people
CALL apoc.export.xls.data(people, [], "movies-l.xls", {})
YIELD file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data
RETURN file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data;
表 1. 结果
file source format 节点 relationships 属性 time rows batchSize batches done data

"movies-l.xls"

"data: nodes(3), rels(0)"

"xls"

3

0

6

10

3

20000

1

TRUE

NULL

movies-l.xls 为每个节点标签和关系类型包含单独的工作表。在本例中,它包含一个 Person 工作表。

我们可以使用 apoc.load.xls 查询这些工作表的内容。让我们查看一下 Person 工作表

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

0

[3, 1961, "Laurence Fishburne"]

{name: "Laurence Fishburne", <nodeId>: 3, born: 1961}

1

[5, 1967, "Lilly Wachowski"]

{name: "Lilly Wachowski", <nodeId>: 5, born: 1967}

2

[6, 1965, "Lana Wachowski"]

{name: "Lana Wachowski", <nodeId>: 6, born: 1965}

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