usercount

关于NPOI

1,使用using(声明对象);using让局部对象失效,使用它时,要么其包含的类实现IDispose接口,要么他的父类实现IDispose接口。

2,模糊查询:%代表0到多个任意字符;_代表一个任意字符;[]中间放一个范围;^放在[]中代表非(不在此范围)

3,NPOI实现Excel导出导入:

导出到excel:::   (1)数据库中的表用SqlDataReader读出来存到其对象中

                   (2)创建IWorkbook接口的对象wk,并给其一个文件流参数--FileStream fsRead=File.O
penRead();   //工作簿

                   (3)wk.NumberofSheet代表工作表数量 ;  wk.GetSheetAt(索引)获取表;  创建ISheet接口的对象 sheet        ISheet sheet = wk.CreateSheet("tb_user");   //工作表

                   (4)sheet.LastRowNum代表最后一行的索引值;创建IRow 对象

                   (5)然而row.LastCellNum代表最后一列的列索引值+1;创建ICell对象

           注意:数据库有空值的字段,在写入Excel时要做出判断

                   方法一:if(!=null)

                             {

                                     row.CreateCell(3).SetCellValue(headMap);//如果不为空,则使用单元格。(另外一个意思就是  如果为空了,那么此单元格跳过不赋值,就是未使用)

                             }

                    方法二:if(headMap)

                             {

                                     //单元格对象.空单元格

                                      cellHeadMap.SetCellType(CellType.BLANK);

                             }

                                  else
                             {
                                       cellHeadMap.SetCellValue(headMap);
                             }

                          (6)最后执行FileStream fsWrite=File.OpenWrite("文件名")

                                                    wk.Write(文件流对象fsWrite)

excel导入到表:::

                 (1)读取Excel

                   (2) IRow row = sheet.GetRow(i);

                   (3) string name = row.GetCell(1).StringCellValue;/////示例取值/////

                   (4)判断当单元格中不为空或者单元格格式不为Blank时,正常赋值,否则赋值为null

                   (5)当有值为null时,并不能把null插入到数据库,要插入DBNull.Value。//////new SqlParameter("@HeadMap",headMap==null?DBNull.Value:(object)headMap);//////

 注意:://当插入日期的时候
            //Excel日期转到数据库时,要用DateTime.FromOADate;
            //Excel的控制插入数据库  要用DBNull.Value
            //onject(DateTime.FromOADate((double)lockDate))

 

posted @   坦荡  阅读(388)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示