# @csvbox/angular2 中文文档

规范地址：https://npmcn.com/package/%40csvbox/angular2/

版本：2\.0\.0
npm 元数据更新时间：2026-10-26T12:58:27.454Z
中文译文更新时间：2026-11-11T04:55:20.290Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40csvbox/angular2
原文对照：https://npmcn.com/package/%40csvbox/angular2/?lang=original
项目主页：https://github.com/csvbox-io/angular-adapter-2#readme
源码仓库：https://github.com/csvbox-io/angular-adapter-2

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

- 包体积（解压后）：196 kB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：@angular/core \>=14\.0\.0 \<23\.0\.0，@angular/common \>=14\.0\.0 \<23\.0\.0
- 首次发布：2025-03-19T10:04:03.314Z
- 最新版本发布：2026-10-26T12:58:26.674Z
- 近 30 天下载量：3160（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 3 个）

## 中文简介

Csvbox.io 支持Angular版本14至22的独立角构件

## 安装

```sh
npm install @csvbox/angular2
```

也可以使用：`pnpm add @csvbox/angular2`、`yarn add @csvbox/angular2`、`bun add @csvbox/angular2`

## README

# @ csvbox/ angula 2 (韩语)

> Csvbox.io 支持Angular 14 及以上版本的独立角组件

## 仅针对角版14及以上

## QQ 对于Angular 第13版或以下,请使用 [@ csvbox/ angular (韩语)](https://www.npmjs.com/package/@csvbox/angular) 软件包

[![NPM](https://img.shields.io/npm/v/@csvbox/angular2.svg)](https://www.npmjs.com/package/@csvbox/angular2) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com/)

## 兼容性

| 角质版本 | 软件包 |
| :-- | :-- |
| 8至13岁 | [@ csvbox/ angular (韩语)](https://www.npmjs.com/package/@csvbox/angular) |
| 14岁及以上 | @csvbox/angular2 (这个软件包) |

## 贝壳

```bash
npm install @csvbox/angular2
```

## 导入

添加 `CSVBoxButtonComponent` 到您的模块导入

```ts
import { CSVBoxButtonComponent } from "@csvbox/angular2";

@NgModule({
  ...
  imports: [
    ...
    CSVBoxButtonComponent
  ]
})
```

## 使用量

```html
<csvbox-button [licenseKey]="licenseKey" [isImported]="isImported.bind(this)" [user]="user">Import</csvbox-button>
```

## 示例

```ts

@Component({
  selector: 'app-root',
  template: `
    <csvbox-button
      [licenseKey]="licenseKey"
      [user]="user"
      [isImported]="isImported.bind(this)">
      Import
    </csvbox-button>
  `
})

export class AppComponent {

  title = 'example';
  licenseKey = 'YOUR_LICENSE_KEY_HERE';
  user = { user_id: 'default123' };

  isImported(result: boolean, data: any) {
    if(result) {
      console.log("Sheet uploaded successfully");
      console.log(data.row_success + " rows uploaded");
    }else{
      console.log("There was some problem uploading the sheet");
    }
  }

}
```

## 活动

| 活动 | 说明 |
| :-- | :-- |
| `isReady` | 当进口商初始化并准备供用户使用时触发. |
| `isClosed` | 进口商关闭时触发 . |
| `isSubmitted` | 当用户点击“ 提交” 按钮上传已验证文件时触发 . **数据** 对象在此事件中可用。 它包含与导入相关的元数据. |
| `isImported` | 当数据被推到目的地时触发.  
此事件有两个对象:  
1\. 结果(布尔): 当导入成功且当导入失败时是虚假的,这是真实的.  
2\. 数据(对象):包括与导入有关的元数据. |

## 导入您已有的文件

`openModalWithFile(file)` 在 `File` 自己的页面是持有—— 从您的 自己的投放目标,你自己的文件输入,任何东西——而不是进口商的文件取取器. 这个 文件仍然通过导入者的扩展名、工作表和大小检查 picker, 不是验证.

通过模板引用变量调用 :

```html
<csvbox-button #importer [licenseKey]="licenseKey" [user]="user" [isImported]="isImported.bind(this)">
  Import
</csvbox-button>

<input type="file" (change)="importer.openModalWithFile($any($event.target).files[0])" />
```

或来自组件类 `@ViewChild(CSVBoxButtonComponent) importer: CSVBoxButtonComponent;` 财务报告和审定财务报表 `this.importer.openModalWithFile(file)`。 。 。 .

进口商可以拒绝交给的文件 并说为什么在控制台警告中 (单位:千美元)`[csvbox] importer declined the supplied file: <reason>`:

-   `import-in-progress` - 进口商已打开其上传步骤,或仍在读 早先的文件 。 已经打开的导入仍然打开 .
-   `modal-closing` ——文件到达时进口商关门.
-   `import-file-url-configured` ——工作表的设置是为了从URL上加载自己的文件.

传出 a `File`,而不是一个 `Blob`(单位:千美元) `Blob` 没有名字可以读取扩展, 和任何 不是一个 `File` 被忽略.

当输入方重定向到另一个主机时( 数据定位表做此操作), 文件会被发送到主机, 输入方实际上最终会打开, 只要主机是您的输入域或 `<region>-<your domain>` (例如 `eu-app.csvbox.io` 页:1 `app.csvbox.io`) (中文(简体) ). 文件从不会发送给其他主机 .

如果进口商在大约8秒内(例如,由于它重定向到一个没有遵循该命名的主机,或者它太老了,无法知道消息)不回答所提供的文件,则进口商被收起,其他按钮再次被启用,控制台说 `[csvbox] the importer did not respond to the supplied file`。 。 。 .

## 一页上的几个进口商

当一个进口商打开(或仍在装入以打开)时,页面上其他每个 CSVBox 实例的按钮被禁用直到关闭,因此两个进口商不会意外打开. 在反应中 `render` 道具( r)`isLoading`) 也为 `true` 在那种状态下,所以自定义触发器可以同样的方式自禁.

从代码中开设第二个进口商(`openModal()` 或者说 `openModalWithFile()`)仍然有可能。 最后一个打开的进口商显示在其他进口商的上方,关闭后显示下面的进口商.

## 进口时关闭进口商

如果您的用户提交文件, 然后在导入完成前关闭导入者, 则导入继续, 并且您 `isImported` (或 `onImport`)在完成后仍随结果调用回调. 进口商下次打开时会重新装入.

## 读取

关于用法,请参见指南 [https://help.csvbox.io/getting-started #2-install-code 互联网档案馆的存檔,存档日期2013-12-2](https://help.csvbox.io/getting-started#2-install-code)

## 许可证

麻省理工学院 [csvbox-io (英语)](https://github.com/csvbox-io)

## 常见问题

### @csvbox/angular2 是什么？

Csvbox\.io 支持Angular版本14至22的独立角构件

### 如何安装 @csvbox/angular2？

在项目目录运行 npm install @csvbox/angular2，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@angular/core（\>=14\.0\.0 \<23\.0\.0）、@angular/common（\>=14\.0\.0 \<23\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @csvbox/angular2 支持 TypeScript 吗？

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

### @csvbox/angular2 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @csvbox/angular2 可以商用吗？

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

### @csvbox/angular2 的下载量有多少？

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

### @csvbox/angular2 还在维护吗？

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

