# @flatfile/plugin-xlsx-extractor 中文文档

规范地址：https://npmcn.com/package/%40flatfile/plugin-xlsx-extractor/

版本：4\.1\.1
npm 元数据更新时间：2026-04-23T23:55:02.795Z
中文译文更新时间：2026-11-14T21:49:11.375Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flatfile/plugin-xlsx-extractor
原文对照：https://npmcn.com/package/%40flatfile/plugin-xlsx-extractor/?lang=original
项目主页：https://github.com/FlatFilers/flatfile-plugins#readme
源码仓库：https://github.com/FlatFilers/flatfile-plugins

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：110 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 18
- 运行依赖：3 个
- peer 依赖：@flatfile/listener ^1\.1\.0
- 首次发布：2023-02-24T08:53:03.780Z
- 最新版本发布：2025-10-17T17:22:18.643Z
- 近 30 天下载量：64308（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：84（近 12 个月 0 个）

## 中文简介

在 Flatfile 中解析 xlsx 文件的插件 .

## 安装

```sh
npm install @flatfile/plugin-xlsx-extractor
```

也可以使用：`pnpm add @flatfile/plugin-xlsx-extractor`、`yarn add @flatfile/plugin-xlsx-extractor`、`bun add @flatfile/plugin-xlsx-extractor`

## README

这个 `@flatfile/plugin-xlsx-extractor` 插件旨在从Excel文件中提取结构化数据. 它利用各种库来解析Excel文件并高效地检索结构化数据.

**事件类型 :** `listener.on('file:created')`

**支持的文件类型 :** `.xls`, (中文(简体) ), `.xlsx`, (中文(简体) ), `.xlsm`, (中文(简体) ), `.xlsb`, (中文(简体) ), `.xltx`, (中文(简体) ), `.xltm`

> 嵌入Flatfile时,该插件应被部署在服务器侧听器中. [学多点](https://npmcn.com/docs/orchestration/listeners#listener-types)

## 参数

#### `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` 参数)

示例配置 :

```js
mergedCellOptions: {
  acrossColumns: {
    treatment: 'concatenate',
    separator: ', '
  },
  acrossRows: {
    treatment: 'applyToAll'
  },
  acrossRanges: {
    treatment: 'applyToTopLeft'
  }
}
```

## API 调用

-   `api.files.download`
-   `api.files.get`
-   `api.files.update`
-   `api.jobs.ack`
-   `api.jobs.complete`
-   `api.jobs.create`
-   `api.jobs.fail`
-   `api.jobs.update`
-   `api.records.insert`
-   `api.workbooks.create`

## 使用量

听好 Excel 文件( 所有扩展支持) 要上传到 Flatfile 。 然后平台会自动取出文件. 一旦完成,文件将准备在文件区域导入 .

```bash
npm i @flatfile/plugin-xlsx-extractor
```

```js
import { ExcelExtractor } from "@flatfile/plugin-xlsx-extractor";
```

**听众.js**

```js
listener.use(ExcelExtractor());
```

**其他选项**

```js
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` 横行并取行 以最不空的单元格为标题,倾向于最早的单元格 这样一行,如果一个平局.

```js
listener.use(ExcelExtractor());
// or...
listener.use(
  ExcelExtractor({
    headerDetectionOptions: {
      algorithm: "default",
      rowsToSearch: 30, // Default is 10
    },
  })
);
```

#### 明确信头

这一执行只是返回它得到的明确信头清单.

```js
listener.use(
  ExcelExtractor({
    headerDetectionOptions: {
      algorithm: "explicitHeaders",
      headers: ["fiRsT NamE", "LaSt nAme", "emAil"],
    },
  })
);
```

#### 特定行

这个执行查看了具体的行并把它们合并为一个标题. 例如,如果你知道信头在第三行, 你可以通过它 `{ rowNumbers: [2] }`。 。 。 .

```js
listener.use(
  ExcelExtractor({
    headerDetectionOptions: {
      algorithm: "specificRows",
      rowNumbers: [2], // 0 based
    },
  })
);
```

#### 数据行和子标题检测

此执行尝试检测第一个数据行并选择上一个 以行为头. 如果由于所有样本而无法检测到数据行 行是满的,不能切入数字或布尔类型,它也会尝试 检测子标题行, 在检测到标题后检查行后 用于显著的模糊匹配。 如果在可能的子标题中超过半数的字段 与最初检测到的头行相匹配的行模糊,子头行变为 新标题.

```js
listener.use(
  ExcelExtractor({
    headerDetectionOptions: {
      algorithm: "dataRowAndSubHeaderDetection",
      rowsToSearch: 30, // Default is 10
    },
  })
);
```

### 完整示例

在这个例子中 `ExcelExtractor` 以可选选项初始化,然后在Flatfile收听器中注册为中间软件。 当一个 Excel 文件被上传时,插件会取出结构化的数据并使用提取器的解析器处理.

**听众.js**

```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.
}
```

## 常见问题

### @flatfile/plugin-xlsx-extractor 是什么？

在 Flatfile 中解析 xlsx 文件的插件 \.

### 如何安装 @flatfile/plugin-xlsx-extractor？

在项目目录运行 npm install @flatfile/plugin-xlsx-extractor，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@flatfile/listener（^1\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @flatfile/plugin-xlsx-extractor 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @flatfile/plugin-xlsx-extractor 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @flatfile/plugin-xlsx-extractor 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @flatfile/plugin-xlsx-extractor 可以商用吗？

@flatfile/plugin-xlsx-extractor 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @flatfile/plugin-xlsx-extractor 的下载量有多少？

根据 npm 官方下载统计，@flatfile/plugin-xlsx-extractor 在 2026/10/15 – 2026/11/13 这 30 天内被下载 64,308 次，日均约 2,144 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @flatfile/plugin-xlsx-extractor 还在维护吗？

最新版本 4\.1\.1 发布于 2025/10/18（1\.1 年前）；至今共发布 84 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/02/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

