NPOI 1.2.4教程 –日期函数
//Excel中有非常丰富的日期处理函数,在NPOI中同样得到了很好的支持。如下图:

using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel; HSSFWorkbook workbook = new HSSFWorkbook();//创建一个表
ISheet sheet1 = workbook.CreateSheet("Sheet1");//创建一个sheet
IRow row1 = sheet1.CreateRow();//创建一行
IRow row2 = sheet1.CreateRow();//再创建二行
//sheet1.CreateRow(0).CreateCell(0).SetCellValue("B");//直接在第一行第一列创建并设值
row1.CreateCell().SetCellValue("姓名");//创建一列并在第一列添加内容
row1.CreateCell().SetCellValue("参加工作时间");
row1.CreateCell().SetCellValue("当前日期");
row1.CreateCell().SetCellValue("工作年限");
ICell cel1 = row2.CreateCell();//在第二行创建一列
ICell cel2 = row2.CreateCell();
ICell cel3 = row2.CreateCell();
ICell cel4 = row2.CreateCell();
cel1.SetCellValue("Tom");//在第二行的第一列添加内容
cel2.SetCellValue(new DateTime(, , ));//添加日期
cel3.CellFormula = "TODAY()";//添加当前日期
cel4.CellFormula = "CONCATENATE(DATEDIF(B2,TODAY(),\"y\"),\"年\",DATEDIF(B2,TODAY(),\"ym\"),\"个月\")";
//在poi中日期是以double类型表示的,所以要格式化
//设置日期格式
ICellStyle cellStyle = workbook.CreateCellStyle();
IDataFormat format = workbook.CreateDataFormat();
cellStyle.DataFormat = format.GetFormat("yyyy-m-d");
cel2.CellStyle = cellStyle;
cel3.CellStyle = cellStyle;
using (FileStream file = new FileStream(@"c:\tes.xls", FileMode.Create))
{
workbook.Write(file);//写入输出流中
}
下面对上例中用到的几个主要函数作一些说明:
TODAY():取得当前日期;
DATEDIF(B2,TODAY(),"y"):取得B2单元格的日期与前日期以年为单位的时间间隔。(“Y”:表示以年为单位,”m”表示以月为单位;”d”表示以天为单位);
CONCATENATE(str1,str2,…):连接字符串。
另外附上Excel中常用的日期函数列表,只需要将此句代码作适当修改即可:
cel4.CellFormula = "CONCATENATE(DATEDIF(B2,TODAY(),\"y\"),\"年\",DATEDIF(B2,TODAY(),\"ym\"),\"个月\")";
| 函数名 | 函数说明 | 语法 |
|---|---|---|
| DATE | 返回代表特定日期的系列数。 | DATE(year,month,day) |
| DATEDIF | 计算两个日期之间的天数、月数或年数。 | DATEDIF(start_date,end_date,unit) |
| DATEVALUE | 函数 DATEVALUE 的主要功能是将以文字表示的日期转换成一个系列数。 | DATEVALUE(date_text) |
| DAY | 返回以系列数表示的某日期的天数,用整数 1 到 31 表示。 | DAY(serial_number) |
| DAYS360 | 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数。 | DAYS360(start_date,end_date,method) |
| EDATE | 返回指定日期 (start_date) 之前或之后指定月份数的日期系列数。使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。 | EDATE(start_date,months) |
| EOMONTH | 返回 start-date 之前或之后指定月份中最后一天的系列数。用函数 EOMONTH 可计算特定月份中最后一天的时间系列数,用于证券的到期日等计算。 | EOMONTH(start_date,months) |
| HOUR | 返回时间值的小时数。即一个介于 0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的整数。 | HOUR(serial_number) |
| MINUTE | 返回时间值中的分钟。即一个介于 0 到 59 之间的整数。 | MINUTE(serial_number) |
| MONTH | 返回以系列数表示的日期中的月份。月份是介于 1(一月)和 12(十二月)之间的整数。 | MONTH(serial_number) |
| NETWORKDAYS | 返回参数 start-data 和 end-data 之间完整的工作日数值。工作日不包括周末和专门指定的假期 | NETWORKDAYS(start_date,end_date,holidays) |
| NOW | 返回当前日期和时间所对应的系列数。 | NOW( ) |
| SECOND | 返回时间值的秒数。返回的秒数为 0 至 59 之间的整数。 | SECOND(serial_number) |
| TIME |
返回某一特定时间的小数值,函数 TIME 返回的小数值为从 0 到 0.99999999 之间的数值,代表从 0:00:00 (12:00:00 A.M) 到 23:59:59 (11:59:59 P.M) 之间的时间。 |
TIME(hour,minute,second) |
| TIMEVALUE | 返回由文本串所代表的时间的小数值。该小数值为从 0 到 0.999999999 的数值,代表从 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 PM) 之间的时间。 | TIMEVALUE(time_text) |
| TODAY | 返回当前日期的系列数,系列数是 Microsoft Excel 用于日期和时间计算的日期-时间代码。 | TODAY( ) |
| WEEKDAY | 返回某日期为星期几。默认情况下,其值为 1(星期天)到 7(星期六)之间的整数。 | WEEKDAY(serial_number,return_type) |
| WEEKNUM | 返回一个数字,该数字代表一年中的第几周。 | WEEKNUM(serial_num,return_type) |
| WORKDAY | 返回某日期(起始日期)之前或之后相隔指定工作日的某一日期的日期值。工作日不包括周末和专门指定的假日。 | WORKDAY(start_date,days,holidays) |
| YEAR | 返回某日期的年份。返回值为 1900 到 9999 之间的整数。 | YEAR(serial_number) |
| YEARFRAC | 返回 start_date 和 end_date 之间的天数占全年天数的百分比。 | YEARFRAC(start_date,end_date,basis) |
NPOI 1.2.4教程 –日期函数的更多相关文章
- NPOI 1.2.5 教程
NPOI1.2.5教程官方地址 作者:Tony Qu & atao.xiang QQ群:20144214 ===== 持续更新中 ===== a. NPOI简介 b. 版权声明 目录 1. O ...
- [php基础]Mysql日期函数:日期时间格式转换函数详解
在PHP网站开发中,Mysql数据库设计中日期时间字段必不可少,由于Mysql日期函数输出的日期格式与PHP日期函数之间的日期格式兼容性不够,这就需要根据网站实际情况使用Mysql或PHP日期转换函数 ...
- PHP之时间和日期函数
// 时间日期函数 Time <?php date_default_timezone_set('UTC'); // 获取当前时间的时间戳 $time0 = mktime(); $time1 = ...
- SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName
一,月份的最后一天 函数 EOMonth 返回指定日期的最后一天 EOMONTH ( start_date [, month_to_add ] ) 1,对于start_date 有两种输入方式,能够转 ...
- mysql 日期函数总结
1.0 格式化:DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是合法的日期.format 规定日期/时间的 ...
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- sql 的实用函数(包含日期函数、截取字符串函数)
CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),data_to_b ...
- DB2 SQL 日期函数
DB2 SQL 日期函数1:CURRENT TIMESTAMP 函数:获取当前日期时间语法:CURRENT TIMESTAMP参数:当前日期时间返回值:当前日期时间 2:CURRENT DATE 函数 ...
- SQLserver日期函数
------------------日期转化成年月日时分秒毫秒--------------- select 'R'+CONVERT(varchar(100), GETDATE(), 112)+ri ...
随机推荐
- 用H5的canvas做时钟
<!doctype html><html> <head> <meta charset="UTF-8"> <title>D ...
- rpc优化
1.刷文章列表的时候,发现调用总时间100ms ,其中调策略是花了60ms,一个开源的map方法dozer,组装bean要花40ms 2.redis的zounct方法,传 1和-1的时候有时候会返回0 ...
- Java转json
一.json介绍 1. 作用:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,是存储和交换文本信息的语法. 2.json以key-value的格式书写,数 ...
- 分享一个c#t的网页抓取类
using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Ne ...
- wp手机 htc x310e
入手htc x310e 手机不错,用着流畅 不习惯,已升到wp7.8,系统限制还是有些需要的功能没有,比如说短信拦截什么的 我需要的常用软件少 转手了 1 注销windows live? 设置--应用 ...
- navigationcontroller剖析
概述: 系统原生的navigationcontroller非常强大, 几乎所有的程序都基于系统的导航控制器做开发 它的navigationbar的有2种形态 navigationbar的frame其实 ...
- [转载]javascript创建对象的几种方式
原文链接:http://qingfeng825.iteye.com/blog/1935648 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function ...
- Codeforces 519 E. A and B and Lecture Rooms
Description 询问一个树上与两点距离相等的点的个数. Sol 倍增求LCA. 一棵树上距离两点相等,要么就只有两点的中点,要么就是与中点相连的所有点. 有些结论很容易证明,如果距离是偶数,那 ...
- fastx_toolkit软件使用说明
高通量测序数据下机后的原始fastq文件,包含4行,其中一行为质量值,另外一行则为对应序列,我们都了解高通量的数据处理首先要进行质量控制,这些过程包括去接头.过滤低质量reads.去除低质量的3'和5 ...
- php preg_match($p, $str, $match)方法简介
方法作用:匹配指定的正则表达式并将结果放在$match数组中 代码示例: $p = '/name:([\\ws]+)/'; $str = "name:steven jobs"; p ...