项目中经常用到需要操作Excel文件,例如:导出数据库中的数据,读取数据等。但是电脑又没有安装office,不能直接调用微软的库,最后经过查找,找到这样的一个不用安装office的库。一个.NET库,可以读取/写入没有安装Microsoft Office的Office格式。没有COM +,没有互操作。
public class ExcelNpoiTest { /// <summary> /// NPOI基础的Excel创建 /// </summary> public static void CreateExcel() { //创建工作薄 HSSFWorkbook wk = new HSSFWorkbook(); //创建一个名称为mySheet的表 ISheet tb = wk.CreateSheet("mySheet"); for (int i = 0; i < 20; i++) { //创建行 IRow row = tb.CreateRow(i); for (int j = 0; j < 20; j++) { //创建列 ICell cell = row.CreateCell(j); //赋值 cell.SetCellValue($"[{i},{j}]"); } } //打开一个现有文件或创建一个新文件以进行写入。 using (FileStream fs = File.OpenWrite(@"D:\myxls.xls")) { //向打开的这个xls文件中写入mySheet表并保存。 wk.Write(fs); } } /// <summary> /// NPOI基础的Excel读取 /// </summary> public static void ReadExcel() { //打开现有文件以进行读取。 using (FileStream fs = File.OpenRead(@"D:\myxls.xls")) { //把文件写入wk中 HSSFWorkbook wk = new HSSFWorkbook(fs); for (int i = 0; i < wk.NumberOfSheets; i++) { //获取sheet ISheet sheet = wk.GetSheetAt(i); for (int j = 0; j < sheet.LastRowNum; j++) { //获取行 IRow row = sheet.GetRow(j); if (row != null) { for (int k = 0; k < row.LastCellNum; k++) { //获取列 ICell cell = row.GetCell(k); if (cell != null) { //获取值 Console.Write(cell.ToString()); } } } Console.WriteLine(); } } } } }