# 设置单元格背景色

## 概述

本文介绍如何在 aardio 中使用 NPOI 控件为 Excel 单元格设置背景颜色。

## 示例代码

```aardio
// 导入 NPOI 相关库
import NPOI;
import System.IO;

// 创建新的 Excel 工作簿 (XSSF 格式，即 .xlsx)
var workbook = NPOI.XSSF.UserModel.XSSFWorkbook();

// 创建工作表并命名为 "Sheet1"
var sheet = workbook.CreateSheet("Sheet1");

// 在第一行第一列创建单元格
var row = sheet.CreateRow(0); // 创建第1行(索引从0开始)
var cell = row.CreateCell(0); // 创建第1个单元格

// 创建单元格样式
var cellStyle = workbook.CreateCellStyle();

// 定义 RGB 颜色值 (红色:255, 绿色:221, 蓝色:221)
var rgb = raw.buffer({255, 221, 221});

// 创建自定义颜色对象
var customColor = NPOI.XSSF.UserModel.XSSFColor(rgb);

// 设置单元格样式
cellStyle.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground; // 设置填充模式为实心
cellStyle.SetFillForegroundColor(customColor); // 设置前景填充颜色

// 将样式应用到单元格
cell.CellStyle = cellStyle;

// 保存 Excel 文件
var fileStream = System.IO.FileStream("sample.xlsx", "w");
workbook.Write(fileStream);
fileStream.Close();
```

## 代码说明

1. **创建工作簿和工作表**:
   - 使用 `NPOI.XSSF.UserModel.XSSFWorkbook()` 创建新的 Excel 工作簿
   - 使用 `CreateSheet()` 方法创建工作表

2. **创建单元格和样式**:
   - 行和列的索引从 0 开始
   - 需要先创建行对象，再创建该行中的单元格
   - 单元格样式通过 `CreateCellStyle()` 方法创建

3. **设置颜色**:
   - 使用 `raw.buffer()` 创建 RGB 颜色值的字节数组
   - `XSSFColor` 类用于定义自定义颜色
   - 设置 `FillPattern` 为实心填充模式
   - 使用 `SetFillForegroundColor()` 设置前景色

4. **保存文件**:
   - 通过 `FileStream` 创建文件流
   - 使用工作簿的 `Write()` 方法写入文件
   - 最后不要忘记关闭文件流

## 注意事项

- NPOI 中行和列的索引都是从 0 开始
- 在 aardio 中需要使用 `raw.buffer` 创建字节数组，而不是 C# 中的 `byte[]`
- 文件操作完成后应该及时关闭文件流
- 颜色值范围是 0-255，对应 RGB 颜色分量

这个示例演示了如何创建一个简单的 Excel 文件并为单元格设置背景色，可以根据需要修改颜色值和其他参数。