NPOI 1.2.4教程 –日期函數

來源:互聯網
上載者:User

標籤:

//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");//建立一個sheetIRow row1 = sheet1.CreateRow(0);//建立一行IRow row2 = sheet1.CreateRow(1);//再建立二行//sheet1.CreateRow(0).CreateCell(0).SetCellValue("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)){    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教程 –日期函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.