C#使用NPOI操作Excel
1.引入命名空间
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
using System.Data;
2.读取文件流
using (FileStream fs = File.OpenRead(filePath)){}
3.读取EXCEL
3.1 创建工作簿对象
IWorkbook workbook = null;
3.2 兼容.xls和.xlsx版本
if (filePath.IndexOf(".xlsx") > 0)
{
workbook = new XSSFWorkbook(fs);
}
// 如果是2003-的Excel版本
else if (filePath.IndexOf(".xls") > 0)
{
workbook = new HSSFWorkbook(fs);
}
3.3 获取表格内容
函数 | 说明 |
---|---|
ISheet sheet = workbook.GetSheetAt(p) | 获取工作簿第p页内容 |
IRow firstRow = sheet.GetRow(i) | 获取表格第i行内容 |
ICell cell = firstRow.GetCell(i) | 获取首行第i格单元格内容 |
IRow.LastRowNum/FirstRowNum | 获取表格尾行和首行 |
IRow.LastCellNum/FirstCellNum | 获取表格尾列和首列 |
ISheet.SheetName | 获取工作页面名 |
3.4 单元格相关样式
cell.CellType
获取单元格样式,返回数值
单元格样式 | 数值 |
---|---|
CellType.Unknown | -1 |
CellType.Numeric | 0 |
CellType.String | 1 |
CellType.Formula 公式 | 2 |
CellType.Blank | 3 |
CellType.Boolean | 4 |
CellType.Error | 5 |
以指定形式返回单元格值
属性 | 说明 |
---|---|
cell.NumericCellValue; | 以数值形式存值 |
cell.StringCellValue; | 以字符串形式 |
cell.DateCellValue | 以日期形式 |
cell.RichStringCellValue | 以富文本形式 |
4. 写入Excel
4.1 创建相关内容
函数 | 说明 |
---|---|
workbook.CreateSheet() | 创建工作簿 |
Isheet.CreateRow(0) | 创建数据行 |
IRow.CreateCell(c) | 创建单元格 |
4.2写入值
cell.SetCellValue(data);
4.3 输出为文件
outpath为文件输出路径
using (FileStream fs = File.OpenWrite(Outpath))
{
workbook.Write(fs);//向打开的这个xls文件中写入数据
result = true;
}
详细示例请浏览https://github.com/miraclefan777/Csharp-Tricks,或者https://download.csdn.net/download/qq_49729636/85221232