月度报表、业务台账、交易明细、人工填报数据、外部机构交付数据......Excel 依然是企业数据交换中非常常见的载体。它贴近业务人员的工作方式,也能够承载一定的数据计算与分析需求。
但随着数据规模扩大、计算任务变得复杂,或者数据需要进一步进入统一的数据存储、计算和分析流程,Excel 中的数据往往还需要与专业的数据处理系统衔接。例如,一份业务数据完成 Excel 填报后,可能还需要进行统一清洗、批量计算、历史数据关联,或进一步提供给 BI、业务应用和 AI 系统使用。
DolphinDB Excel 插件提供了一条直接的数据接入路径:无需手动转换文件格式,即可在 DolphinDB Server 中读取 .xlsx 文件,并按照指定的字段、类型和读取规则转换为 DolphinDB 表,进一步参与后续的数据清洗、存储、计算与分析。
从 Excel 到 DolphinDB,数据接入更直接
将 Excel 数据接入 DolphinDB,并不只是把文件"读进来"。面对实际业务中的不同模板和数据结构,插件提供了更灵活的数据接入能力,让 Excel 数据能够按照预期的结构进入后续处理流程。
01 灵活读取,适配不同业务模板
一个工作簿可能包含多个 Sheet,表头位置、数据起始行以及需要读取的字段也可能不同。插件支持按指定 Sheet、列映射和数据范围读取数据,并提供多种合并单元格处理模式,能够更好地适配实际业务中常见的复杂 Excel 模板。
例如,配置列映射关系:
bash
columnSpec = table(
["A", "B", "C", "D"] as excelColumn,
["institution", "maturity", "treasuryNew", "treasuryOld"] as name,
["STRING", "STRING", "DOUBLE", "DOUBLE"] as type
)
通过这种方式,Excel 中的源列可以按照业务需要重新命名,并明确对应的 DolphinDB 数据类型。原本依赖 Excel 表格位置和格式的数据,经过映射后即可形成结构明确的 DolphinDB 表。整个过程直接在 DolphinDB Server 中完成,无需再导出 CSV 等中间格式。
02 在数据进入计算前完成校验
实际业务中,Excel 模板可能随着业务调整而变化。如果表头、数据位置或单元格类型发生变化,数据即使能够被读取,也可能影响后续计算结果。
针对这一问题,插件支持配置预期表头,并按照指定的目标类型进行数据转换。例如,可以指定第 3 行为表头,并要求表头必须与预期内容一致:
bash
options = dict(STRING, ANY)
options["headerRow"] = 3
options["dataStartRow"] = 4
options["expectedHeader"] = ["机构名称", "期限", "国债-新债", "国债-老债"]
excel::readSheet(filePath, "现券交易", columnSpec, options)
读取时,插件会按照 options 配置校验表头,并根据 columnSpec 中定义的目标类型进行转换。如果文件格式或数据类型不符合预期,可以在数据进入后续计算前及时发现。
03 多个 Sheet,也可以统一处理
实际业务中,一份 Excel 工作簿往往包含多个 Sheet,例如分别存放不同业务类型或不同时间段的数据。如果这些 Sheet 采用相同的数据结构,就可以在 DolphinDB 中统一读取并合并。
bash
sheets = excel::listSheets(filePath)
tables = array(ANY, 0)
for (sheetName in sheets) {
tables.append!(excel::readSheet(filePath, sheetName, columnSpec, options))
}
result = unionAll(tables, false)
这样,原本分散在多个 Sheet 中的数据,就可以在 DolphinDB 中形成统一的数据表,继续进行清洗、关联、聚合和计算。
延伸数据接入边界
对于 DolphinDB 生态伙伴而言,当业务数据以 Excel 形式交付时,可以通过标准化的方式直接接入 DolphinDB,为后续的数据处理和计算提供统一的数据入口,同时减少重复开发文件解析、字段映射和类型转换逻辑。
从数据库、API 到 Excel,企业数据的来源和交付方式日益多样化。更丰富的数据接入能力,让 DolphinDB 能够连接更多真实业务场景,也让数据从产生、交付到处理和计算的链路更加顺畅。
点击插件市场,直达下载试用!