c#学习系列-1 表格简单操作

使用工具==VS2022,NPOI库

引用部分:dll库的引用(NPOI.dll,ICSharpCode.SharpZipLib.dll)

        命名空间的引用(using NPOI.SS.UserModel;
                                using NPOI.HSSF.UserModel;)

注意:本人使用的NPOI库是2.1版本的,NPOI.dll的复制本地一定要选 true,

          读取的函数只能读取.xls的文件,写入的不受影响

主要包含2个函数,写入与读取(亲测有效)

 // 函数创建表格            
            public static void CreatExcel(string path)//path路径及文件名
            {

                IWorkbook wk = new HSSFWorkbook();//实例化 表格类

                ISheet shet = wk.CreateSheet("表1");//创建 表及表名
                IRow row = shet.CreateRow(5);//行数 从0开始
                ICell cel = row.CreateCell(5);//单元格数 从0开始
                cel.SetCellValue(233);//表示 添加 233 到5行的第5个单元格

                //读写数据一定要用using语句,不然容易报错                      
                using (FileStream fs = File.Open(path, FileMode.OpenOrCreate))
                {
                    wk.Write(fs);//添加内容                
                }

            }//创建表格


            //函数读取表格
            public static void ReadExcel(int numSheet, string path)//numSheet指要获取的具体的表,path路径
            {
                IWorkbook wk = null;//先实例化一个空类,后面根据文件的扩展名来创建实际的类

                string extension = Path.GetExtension(path);//函数 获取文件的扩展名

                //一定要使用 using打开文件流
                using (FileStream fs = File.OpenRead(path))
                {
                    //扩展名是支持的文件
                    if (extension.Equals(".xls"))
                    {
                        //就创建 .xls文件类
                        wk = new HSSFWorkbook(fs);
                    }

                    //扩展名不是支持的文件
                    else
                    {
                        Console.WriteLine("本程序只能读取.xls的表格文件");
                        return;
                    }
                }
                 

                //获得当前表
                ISheet sheet = wk.GetSheetAt(numSheet);//0表示第一个表
                
                //获得 表中从0开始的所有行
                IRow row = sheet.GetRow(0);

                //使用循环来遍历数据
                for (int i = 0; i <= sheet.LastRowNum; i++)  //LastRowNum 是当前表的总行数-1(注意)
                {
                    row = sheet.GetRow(i);  //获得表中的所有行
                    if (row != null)
                    {
                        //LastCellNum 是当前行的总列数
                        for (int j = 0; j < row.LastCellNum; j++)
                        {
                            //读取数据
                            string value = row.GetCell(j).ToString();
                            Console.Write(value + ",");
                        }
                        Console.WriteLine("\n");
                    }
                }


            }//读取表格


       

      读取的效果

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值