NPOI 1 2 4教程 日期函式

2022-05-17 17:37:46 字數 4190 閱讀 8588

//excel中有非常豐富的日期處理函式,在npoi中同樣得到了很好的支援。如下圖:

建立乙個表

isheet sheet1 = workbook.createsheet("

sheet1

");//

建立乙個sheet

irow row1 = sheet1.createrow(0);//

建立一行

irow row2 = sheet1.createrow(1);//

再建立二行

"b");

//直接在第一行第一列建立並設值

row1.createcell(0).setcellvalue("

姓名");//

建立一列並在第一列新增內容

row1.createcell(1).setcellvalue("

參加工作時間");

row1.createcell(

2).setcellvalue("

當前日期");

row1.createcell(

3).setcellvalue("

工作年限");

icell cel1 = row2.createcell(0);//

在第二行建立一列

icell cel2 = row2.createcell(1

);icell cel3 = row2.createcell(2

);icell cel4 = row2.createcell(3

);cel1.setcellvalue(

"tom

");//

在第二行的第一列新增內容

cel2.setcellvalue(new datetime(2004, 7, 1));//

新增日期

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

下面對上例中用到的幾個主要函式作一些說明:

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)

關於npoi1 2 4 匯出excel樣式設定

首先.aspx頁面引用 其次 npoi public class excelgameresult 輸出檔案到瀏覽器 excel文件流 http上下文 檔名 datatable轉換成excel文件流 public static memorystream rendertoexcel datatable ...

NPOI 實用教程

記錄一下,最近專案中使用這個第三方元件 感謝博主的分享 目錄1.認識npoi 2.使用npoi生成xls檔案 2.1 建立基本內容 2.2 單元格操作 2.3 使用excel公式 2.3.1 基本計算 2.3.2 sum函式 2.3.3 日期函式 2.3.4 字串相關函式 2.3.5 if函式 2....

12 4 日期時間類

作 者 霍雨佳 完成日期 2014 年5月18日 版 本 號 v1.0 問題描述 日期時間類 樣例輸入 樣例輸出 專案要求 定義乙個日期類date,資料成員包括年 月 日,setdate int y,int m,int d 和printdate 函式分別用於設定日期和顯示日期 再定義乙個時間類tim...