我們經常需要將數據導入到Excel,或直接打開Excel文檔,讀寫文件操作,這需要用到ExcelHelper類,有了這個類,這些操作大大的減少我們工作量。
ExcelHepler.cs這個類,我博客上有完整的代碼。詳見
至於如何用,這里不一一說明,相信大家琢磨一下就可以寫出。
言歸正傳,我們要討論的事,Excel的函數如何給.NET使用。眾所周知,Excel的函數強大,及其使用方法都被我們所接受。有時為了一個不常用NET的函數,要費九牛二虎之力,自己寫函數或找開源代碼,最后也不是很理想,若我們直接調用Excel現成的函數,那該有多好啊。
一、找到相就的Excel包含函數庫文件
三個Excel的庫文件,下載地址http://download.csdn.net/detail/cndrip/4559300
這里包含了三個件Interop.Excel.dll Interop.Office.dll Interop.VBIDE.dll,其中與本文直接相關的Interop.Excel.dll,為了減少程序出錯,及保證完整性,建議童鞋們一起用,否則出錯了都不知那個原因。
二、將庫導入相應的項目中
在解決方案中右鍵點引用,選擇“添加引用”將三個下載的庫文件添加,如圖
三、使用
首先引用
- using Excel;
下面以IsNumber函數作為例子。先聲明一個實例,這樣直接調用相應函數
- Microsoft.Office.Interop.Excel.ApplicationClass excel=
- new Microsoft.Office.Interop.Excel.ApplicationClass();
- bool b=excel.WorksheetFunction.IsNumber( "ABC ");
可用的函數非常多,函數的參數也提示給你了,若還不知道該函數的使用方法,可以到Excel中找相應的函數說明。
如圖
轉載自http://blog.csdn.net/cndrip/article/details/7961531
EXCEL PV 函數
本文介紹 Microsoft Excel 中 PV 函數的公式語法和用法。
說明
返回投資的現值。現值為一系列未來付款的當前值的累積和。例如,借入方的借入款即為貸出方貸款的現值。
語法
PV(rate, nper, pmt, [fv], [type])
PV 函數語法具有下列參數:
- Rate 必需。各期利率。例如,如果按 10% 的年利率借入一筆貸款來購買汽車,並按月償還貸款,則月利率為 10%/12(即 0.83%)。可以在公式中輸入 10%/12、0.83% 或 0.0083 作為 rate 的值。
- Nper 必需。年金的付款總期數。例如,對於一筆 4 年期按月償還的汽車貸款,共有 4*12(即 48)個償款期。可以在公式中輸入 48 作為 nper 的值。
- Pmt 必需。各期所應支付的金額,其數值在整個年金期間保持不變。通常,pmt 包括本金和利息,但不包括其他費用或稅款。例如,¥10,000 的年利率為 12% 的四年期汽車貸款的月償還額為 ¥263.33。可以在公式中輸入 -263.33 作為 pmt 的值。如果省略 pmt,則必須包含 fv 參數。
- Fv 可選。未來值,或在最后一次支付后希望得到的現金余額,如果省略 fv,則假設其值為 0(例如,一筆貸款的未來值即為 0)。例如,如果需要存 ¥50,000 以便在 18 年后為特殊項目付款,則 ¥50,000 就是未來值。可以根據保守估計的利率來決定每月的存款額。如果省略 fv,則必須包含 pmt 參數。
- Type 可選。數字 0 或 1,用以指定各期的付款時間是在期初還是期末。
TYPE 值 | 支付時間 |
---|---|
0 或省略 | 期末 |
1 | 期初 |
說明
- 應確認所指定的 rate 和 nper 單位的一致性。例如,同樣是四年期年利率為 12% 的貸款,如果按月支付,rate 應為 12%/12,nper 應為 4*12;如果按年支付,rate 應為 12%,nper 為 4。
- 以下函數應用於年金:
CUMIPMT | PPMT |
---|---|
CUMPRINC | PV |
FV | RATE |
FVSCHEDULE | XIRR |
IPMT | XNPV |
PMT |
年金是在一段連續期間內的一系列固定的現金付款。例如汽車貸款或購房貸款就是年金。有關詳細信息,請參閱各年金函數的詳細說明。- 在年金函數中,支出的款項,如銀行存款,表示為負數;收入的款項,如股息收入,表示為正數。例如,對於儲戶來說,¥1000 銀行存款可表示為參數 -1,000,而對於銀行來說該參數為 1000。
- 下面列出的是 Microsoft Excel 進行財務運算的公式,如果 rate 不為 0,則:
如果 rate 為 0,則:
(pmt * nper) + pv + fv = 0
示例
如果將示例復制到一個空白工作表中,可能會更容易理解該示例。
|
|
結果為負值,因為這是一筆付款,亦即支出現金流。如果年金的購買成本是 (60,000),則您可以確定這不是一項合算的投資,因為年金的現值 (59,777.15) 小於實際支付值。
注釋 利率除以 12 得到月利率。支付的年數乘以 12 得到支付次數。