c# NPOI导出Excel设置单元格样式
时间: 2025-05-27 20:07:18 浏览: 15
### C# 使用 NPOI 库导出 Excel 并设置单元格样式的示例
#### 创建并初始化工作簿对象
为了使用 NPOI 导出 Excel 文件,首先需要创建 `HSSFWorkbook` 或者 `XSSFWorkbook` 对象来表示整个 Excel 文档。对于不同版本的 Excel 文件,选择不同的类:
- 如果目标是 `.xls` 格式,则应使用 `HSSFWorkbook` 类[^3]。
- 若目标为 `.xlsx` 格式,则需采用 `XSSFWorkbook`。
```csharp
// 创建一个新的Excel文档(适用于.xls)
var excelBook = new HSSFWorkbook();
```
#### 定义和配置单元格样式
通过创建工作簿之后,可以利用该对象进一步定义所需的单元格样式。这一步骤非常重要,因为默认情况下不会有任何预设格式应用于新创建的工作表中的数据。因此,在向单元格添加内容之前,建议先准备好必要的样式规则。
```csharp
// 创建一个用于自定义外观的新样式实例
ICellStyle cellStyle = excelBook.CreateCellStyle();
// 设置边框线型
cellStyle.BorderBottom = BorderStyle.Thin;
cellStyle.BorderLeft = BorderStyle.Thin;
cellStyle.BorderRight = BorderStyle.Thin;
cellStyle.BorderTop = BorderStyle.Thin;
// 设定水平居中对齐方式
cellStyle.Alignment = HorizontalAlignment.Center;
// 垂直方向上的中心位置排列
cellStyle.VerticalAlignment = VerticalAlignment.Center;
```
#### 控制数字格式化
当处理涉及数值类型的字段时,可能希望指定特定的小数位精度或其他形式的数据呈现模式。可以通过修改 `DataFormat` 属性实现这一点。
```csharp
// 获取内置格式或注册新的格式字符串
IDataFormat format = excelBook.CreateDataFormat();
cellStyle.DataFormat = format.GetFormat("0.00"); // 保留两位小数
```
#### 调整行高与列宽
为了让最终生成的表格看起来更加美观易读,还可以调整每一行列以及各列之间的间距大小。注意这里的单位转换关系:行高的设定是以 twips (1/20th of a point) 计算;而列宽则是基于字符宽度的比例因子计算得出。
```csharp
// 新建一行并将高度设为标准字体下的合适尺寸
IRow row = sheet.CreateRow(rowIndex);
row.HeightInPoints = 18f; // 行高设置成18磅
// 修改某列的宽度使其适应较长的文字输入
sheet.SetColumnWidth(columnIndex, 50 * 256); // 列宽设置成大约等于50个字符长度
```
以上就是关于如何在 C# 中运用 NPOI 库完成基本的 Excel 文件导出功能的同时定制单元格样式的介绍。这些技巧可以帮助开发者更好地掌控输出文件的质量,并满足业务逻辑方面的要求。
阅读全文
相关推荐
















