加载 Excel (XLS)

库要求

为了加载 XLS 文件,我们使用了 Apache POI 库,该库与旧版本和新版本的 Excel 格式兼容,但体积较大。因此,我们决定不将其包含在 apoc jar 中,而是将其作为可选依赖项。

这些依赖项包含在 apoc-xls-dependencies-5.26.1-all.jar 文件中,可以从发布页面下载。下载该文件后,应将其放置在 plugins 目录中并重启 Neo4j 服务器。

或者,您可以从 Maven Repository 下载这些 jar 文件(也将其放入 plugins 目录中)

对于 XLS 文件

使用方法

apoc.load.xls 的用法与 apoc.load.csv 相似,主要区别在于可以从工作表或工作表的范围中选择加载数据。

您可以通过名称选择工作表,例如 'Kids',或通过偏移量选择范围,例如 'Results!B2:F3'

CALL apoc.load.xls({url}, {Name of sheet}, {config})

{config} 参数是一个 map

name description

mapping

{mapping:{'<sheet>':{type:'<type>', dateFormat: '<format>', dateParse: [<formats>]}}}

<sheet>

工作表名称

<type>

默认值为 String,请求的转换类型(STRINGINTEGERFLOATBOOLEANNULLLISTDATEDATE_TIMELOCAL_DATELOCAL_DATE_TIMELOCAL_TIMETIME

dateFormat: <format>

将日期转换为字符串(只允许 String)

dateParse: [<formats>]

将字符串转换为日期(允许字符串数组)

header

指示文件是否包含头部行(默认:true)

skipNulls

在列标题没有值的情况下,将标题值映射为字符串 "Empty__<NumberRow>";在空行(位于 Excel 文件内容末尾之前)的情况下,将其映射为具有 null 值的 Map。默认值为 false,即:如果存在无值的标题,将抛出错误 java.lang.IllegalStateException: Header at position N doesn’t have a value;如果存在空行,将停止迭代。

firstCellNum

在标题开头有一个或多个空值的情况下,强制指定初始单元格行号。例如:emptyCell | emptyCell | valueFoo | valueBar | valueBaz。默认值为 Row.getFirstCellNum()

lastCellNum

在标题末尾有一个或多个空值的情况下,强制指定初始单元格行号。例如:valueFoo | valueBar | valueBaz | emptyCell | emptyCell。默认值为 Row.getLastCellNum()

在 dateParse 中,首先匹配到的格式将返回格式化后的日期,否则将返回错误。

format 配置中,您可以使用 Temporal 函数中描述的模式。

apoc.load.xls 示例

CALL apoc.load.xls('file:///path/to/file.xls','Full',{mapping:{Integer:{type:'int'}, Array:{type:'int',array:true,arraySep:';'}}})
apoc.load.xls
CALL apoc.load.xls('http://bit.ly/2nXgHA2','Kids')

带 type/dateFormat 和 dateParse 的一些示例

CALL apoc.load.xls('test_date.xlsx','sheet',{mapping:{Date:{type:'String'}}})
apoc.load.xls 1
图 1. 结果
CALL apoc.load.xls('test_date.xlsx','sheet',{mapping:{Date:{type:'String',dateFormat:'iso_date'}}})
apoc.load.xls 2
图 2. 结果
CALL apoc.load.xls('test_date.xlsx','sheet',{mapping:{Date:{type:'String',dateParse:["wrongPath", "dd-MM-yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "yyyy/dd/MM", "yyyy-dd-MM'T'hh:mm:ss"]}}})
apoc.load.xls 3
图 3. 结果
© . All rights reserved.