# NPOI 工作簿工厂

## 概述

NPOI 提供了 `WorkbookFactory` 类来创建 Excel 工作簿对象，它能够自动检测文件格式并返回适当的工作簿类型（HSSFWorkbook 或 XSSFWorkbook）。

## aardio 代码示例

### 方法一：使用完整命名空间路径

```aardio
import NPOI;
// 使用完整命名空间路径创建工作簿
var workbook = NPOI.SS.UserModel.WorkbookFactory.Create("/fakeExcel.xlsx")
print("工作簿类型: " + workbook.GetType().Name);
```

### 方法二：使用简化名称（推荐）

aardio 的 NPOI 扩展库提供了指向 `NPOI.SS.UserModel.WorkbookFactory` 的短名称 `NPOI.Workbook`，代码可以更简洁：

```aardio
import NPOI;
// 使用简化名称创建工作簿
var workbook = NPOI.Workbook("/fakeExcel.xlsx")
print("工作簿类型: " + workbook.GetType().Name);
```

### 方法三：通过文件流创建工作簿

如果需要更灵活的控制，可以通过文件流创建工作簿：

```aardio
import NPOI;
import System.IO;

// 创建文件流对象
var fs = System.IO.FileStream("/fakeExcel.xlsx","r+")
// 通过文件流创建工作簿
var workbook = NPOI.Workbook(fs)
print("工作簿类型: " + workbook.GetType().Name);
```

## 说明

1. `WorkbookFactory.Create` 方法会自动检测 Excel 文件格式（.xls 或 .xlsx），并返回对应的工作簿对象
2. 在 aardio 中，文件路径建议使用正斜杠 `/`，它会自动转换为当前操作系统支持的路径格式
3. 使用简化名称 `NPOI.Workbook` 可以使代码更简洁易读
4. 通过文件流方式适用于需要更精细控制文件访问的场景

## 工作簿类型

根据文件格式不同，返回的工作簿对象可能是：
- `HSSFWorkbook` - 用于处理 .xls 格式（Excel 97-2003）
- `XSSFWorkbook` - 用于处理 .xlsx 格式（Excel 2007+）