Fork me on GitHub

项目中经常用到需要操作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();
                }
            }
        }
    }


}

 

posted on 2019-06-20 19:53  lingfeng95  阅读(396)  评论(0编辑  收藏  举报