这个 @flatfile/plugin-xlsx-extractor 插件旨在从Excel文件中提取结构化数据. 它利用各种库来解析Excel文件并高效地检索结构化数据.
事件类型 :
listener.on('file:created')
支持的文件类型 :
.xls, (中文(简体) ), .xlsx, (中文(简体) ), .xlsm, (中文(简体) ), .xlsb, (中文(简体) ), .xltx, (中文(简体) ), .xltm
嵌入Flatfile时,该插件应被部署在服务器侧听器中. 学多点
参数
raw - 说吧 boolean
在Excel中,您可以在文本单元格上格式化(即日期格式化). 以 默认时, Flatfile 将仅取格式化文本与原始值。 设定 此值为真取出原值而忽略其显示方式 克塞尔.
rawNumbers - 说吧 boolean
在 Excel 中,您可以在数字单元格上四舍五入或格式化为 显示两个小数位。 默认情况下, Flatfile 将只取 显示小数位相对于生数。 将此值设定为真实值 取出原始数字 并忽略如何在Excel中显示.
dateNF - 说吧 string - (可选)
这个 dateNF 参数允许您指定解析的日期格式
日期。 (即:. yyyy-mm-dd(中文(简体) )
chunkSize - 说吧 default: "10_000" - 说吧 number - (可选)
这个 chunkSize 参数允许您指定要输入的记录数量
每个块.
parallel - 说吧 default: "1" - 说吧 number - (可选)
这个 parallel 参数允许您指定要处理的块数
平行进行.
headerDetectionOptions - 说吧 Object - (可选)
这个 headerDetectionOptions 参数允许您指定选项
在文件中检测信头 。 默认情况下, 头10行被扫描
最不空格的行.
skipEmptyLines - 说吧 default: "false" - 说吧 boolean - (可选)
这个 skipEmptyLines 参数允许您指定是否为空行
跳过 默认情况下包含空行.
debug - 说吧 default: "false" - 说吧 boolean - (可选)
这个 debug 参数允许您切换打开/关闭帮助调试信件
发展目的.
cascadeRowValues - 说吧 default: "false" - 说吧 boolean - (可选)
这个 cascadeRowValues 参数自动向下级联到数据集的空白行、新值或结尾。 这对于一个列中的数值适用于下多行的分级数据有用.
cascadeHeaderValues - 说吧 default: "false" - 说吧 boolean - (可选)
这个 cascadeHeaderValues 参数将自动连入到整个标题行,直到一个空白列、新值或数据集的结尾。 这对多级标题有用,因为一个标题值适用于多列.
mergedCellOptions - 说吧 Object - (可选)
这个 mergedCellOptions 参数允许您指定在提取时如何处理合并的单元格。 可以定义不同治疗的细胞在列,行,或范围之间合并.
合并单元格矢量
acrossColumns: 应用到水平合并的单元格(在同一行多个列之间)acrossRows: 应用到垂直合并的单元格(在同一列的多行间)acrossRanges: 适用于横向和纵向合并的单元格(跨多行和列)
治疗选项
对所有向量:
applyToAll: 将合并的单元格值应用于未合并范围内的所有单元格applyToTopLeft: 仅将合并的单元格值应用到未合并范围的左上单元格
对于 acrossColumns 财务报告和审定财务报表 acrossRows 仅限:
coalesce: 只保留第一行/栏并删除其他行/栏concatenate: 使用分隔符( 需要) 组合来自所有单元格的值separator参数)
示例配置 :
mergedCellOptions: {
acrossColumns: {
treatment: 'concatenate',
separator: ', '
},
acrossRows: {
treatment: 'applyToAll'
},
acrossRanges: {
treatment: 'applyToTopLeft'
}
}
API 调用
api.files.downloadapi.files.getapi.files.updateapi.jobs.ackapi.jobs.completeapi.jobs.createapi.jobs.failapi.jobs.updateapi.records.insertapi.workbooks.create
使用量
听好 Excel 文件( 所有扩展支持) 要上传到 Flatfile 。 然后平台会自动取出文件. 一旦完成,文件将准备在文件区域导入 .
npm i @flatfile/plugin-xlsx-extractor
import { ExcelExtractor } from "@flatfile/plugin-xlsx-extractor";
听众.js
listener.use(ExcelExtractor());
其他选项
listener.use(ExcelExtractor({
raw: true,
rawNumbers: true,
cascadeRowValues: true,
cascadeHeaderValues: true,
mergedCellOptions: {
acrossColumns: {
treatment: 'concatenate',
separator: ', '
},
acrossRows: {
treatment: 'applyToAll'
},
acrossRanges: {
treatment: 'applyToTopLeft'
}
}
}));
页眉检测
为文件中的检测头提供了三种检测选项: default, (中文(简体) ), explicitHeaders,以及 specificRows。默认情况下,前10行会被扫描到排行中最不空的单元格。 此行后被作为标题行.
默认
它看着第一个 rowsToSearch 横行并取行
以最不空的单元格为标题,倾向于最早的单元格
这样一行,如果一个平局.
listener.use(ExcelExtractor());
// or...
listener.use(
ExcelExtractor({
headerDetectionOptions: {
algorithm: "default",
rowsToSearch: 30, // Default is 10
},
})
);
明确信头
这一执行只是返回它得到的明确信头清单.
listener.use(
ExcelExtractor({
headerDetectionOptions: {
algorithm: "explicitHeaders",
headers: ["fiRsT NamE", "LaSt nAme", "emAil"],
},
})
);
特定行
这个执行查看了具体的行并把它们合并为一个标题. 例如,如果你知道信头在第三行, 你可以通过它 { rowNumbers: [2] }。 。 。 .
listener.use(
ExcelExtractor({
headerDetectionOptions: {
algorithm: "specificRows",
rowNumbers: [2], // 0 based
},
})
);
数据行和子标题检测
此执行尝试检测第一个数据行并选择上一个 以行为头. 如果由于所有样本而无法检测到数据行 行是满的,不能切入数字或布尔类型,它也会尝试 检测子标题行, 在检测到标题后检查行后 用于显著的模糊匹配。 如果在可能的子标题中超过半数的字段 与最初检测到的头行相匹配的行模糊,子头行变为 新标题.
listener.use(
ExcelExtractor({
headerDetectionOptions: {
algorithm: "dataRowAndSubHeaderDetection",
rowsToSearch: 30, // Default is 10
},
})
);
完整示例
在这个例子中 ExcelExtractor 以可选选项初始化,然后在Flatfile收听器中注册为中间软件。 当一个 Excel 文件被上传时,插件会取出结构化的数据并使用提取器的解析器处理.
听众.js
import { ExcelExtractor } from "@flatfile/plugin-xlsx-extractor";
export default async function (listener) {
// Define optional options for the extractor
const options = {
raw: true,
rawNumbers: true,
cascadeRowValues: true,
cascadeHeaderValues: true,
};
// Initialize the Excel extractor
const excelExtractor = ExcelExtractor(options);
// Register the extractor as a middleware for the Flatfile listener
listener.use(excelExtractor);
// When an Excel file is uploaded, the data will be extracted and processed using the extractor's parser.
}