关于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))