這是我的文章備份,原文請看:

[轉貼]NPOI,在Excel欄位裡面,取出運算的「值」而非「公式」

http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/09/npoi_excel_formula_value.aspx

 

 

之前介紹過的 NPOI,對於 Excel檔的讀取、輸出 Excel file,威力都非常強大。

http://www.dotblogs.com.tw/mis2000lab/archive/2010/05/07/npoi_excel_vb_asp_net.aspx.aspx

 

 

有位網友 Steven711435 提到一個問題,並且熱情地分享解法,

特別要感謝他!!

 

Q:  讀取 Excel file的時候,某個欄位裡面有「運算公式」,

      所以讀到那個欄位,也會抓取到那一段公式?

      能否只抓取公式運算後的「值」就好了?

 

 

謝謝 Steven711435 辛苦地求解

A: 程式碼如下----

請參閱 http://www.dotblogs.com.tw/mis2000lab/archive/2010/05/07/npoi_excel_vb_asp_net.aspx.aspx

文章裡面第四個範例,

修正 61 ~ 63列的程式碼即可。

If Not row.GetCell(j) Is Nothing Then
      If row.GetCell(j).CellType = NPOI.HSSF.UserModel.HSSFCellType.FORMULA Then
            D_dataRow(j) = row.GetCell(j).StringCellValue
      Else
            D_dataRow(j) = row.GetCell(j).ToString
      End If
End If

 

 

2011/6/13補充:   有朋友反應上面的程式無法執行,以下是我今天測試的結果。

                    '-- 如果格子裡面有「計算公式」的話,只取出運算後的「值」。
                    '-- 參考資料
http://www.javadocexamples.com/org/apache/poi/hssf/usermodel/org.apache.poi.hssf.usermodel.HSSFCell.html

                    If row.GetCell(j).CellType = NPOI.HSSF.UserModel.HSSFCell.CELL_TYPE_FORMULA Then

                        D_dataRow(j) = row.GetCell(j).NumericCellValue    '-- 表示格子裡面的值是「數字」

                    Else
                        D_dataRow(j) = row.GetCell(j).ToString  '--每一個欄位,都加入同一列 DataRow
                    End If

 

另外發現一個問題,可能我的 NPOI版本為 1.21版,

所以上傳的 Excel檔案,只能到 Excel 2007版,使用 2010版的檔案會報錯。

 

 

網路,因為分享  所以偉大!

 

網頁上的補充範例(售後服務)不一定能立即提供 VB / C#語法(看時間夠不夠寫,請不要跟我們要)
書本上面的範例,一定有 VB / C#雙語法給您學習。          請看我們的「售後服務」範圍(嚴格認定)

 

............................. 寫信給我,mis2000lab (at) yahoo.com.台灣......

    ASP.NET 4.0 專題實務(松崗出版)

上 / 下兩集合購。優惠價1,180元(免郵資)

上集( .NET 4.0版)全新改寫。範例增加66%,內容增加35%。上市以來,熱銷五刷

下集(第二版,黑皮書)上市一個月熱銷再刷,2010一年內(第一版)熱銷四刷第二版半年熱銷四刷! 下集內容增加66%。

上下兩集將近2,000頁,堪稱國內 [最詳盡]的ASP.NET範例教學。

南無普光佛  南無普明佛  南無普淨佛  南無多摩羅跋栴檀香佛  南無栴檀光佛  南無摩尼幢佛  南無歡喜藏摩尼寶積佛  南無一切世間樂見上大精進佛   南無摩尼幢燈光佛
南無慧炬照佛  南無海德光明佛   南無金剛牢強普散金光佛  南無大強精進勇猛佛  南無大悲光佛   南無慈力王佛  南無慈藏佛  南無栴檀窟莊嚴勝佛  南無賢善首佛
南無善意佛  南無廣莊嚴王佛  南無金華光佛  南無寶蓋照空自在力王佛  南無虛空寶華光佛  南無琉璃莊嚴王佛  南無普現色身光佛  南無不動智光佛  南無降伏眾魔王佛  
南無才光明佛  南無智慧勝佛  南無彌勒仙光佛  南無善寂月音妙尊智王佛  南無世淨光佛  南無龍種上尊王佛  南無日月光佛  南無日月珠光佛  南無慧幢勝王佛  
南無師子吼自在力王佛  南無妙音勝佛  南無常光幢佛  南無觀世燈佛  南無慧威燈王佛  南無法勝王佛  南無須彌光佛  南無須曼那華光佛  南無優曇鉢羅華殊勝王佛  
南無大慧力王佛  南無阿閦毗歡喜光佛  南無無量音聲王佛  南無才光佛   南無金海光佛  南無山海慧自在通王佛  南無大通光佛  南無一切法常滿王佛  南無釋迦牟尼佛
南無金剛不壞佛  南無寶光佛  南無龍尊王佛  南無精進軍佛  南無精進喜佛  南無寶火佛  南無寶月光佛  南無現無愚佛  南無寶月佛  南無無垢佛  南無離垢佛   
南無勇施佛  南無清淨佛  南無清淨施佛  南無娑留那佛  南無水天佛  南無堅德佛  南無栴檀功德佛  南無無量掬光佛  南無光德佛  南無無憂德佛
南無那羅延佛  南無功德華佛  南無蓮華光遊戲神通佛  南無財功德佛  南無德念佛  南無善名稱功德佛  南無紅燄帝幢王佛  南無善遊步功德佛  南無鬪戰勝佛  
南無善遊步佛  南無周匝莊嚴功德佛  南無寶華遊步佛  南無寶蓮華善住娑羅樹王佛   南無法界藏身阿彌陀佛

............................. 寫信給我,mis2000lab (at) yahoo.com.台灣......

 

創作者介紹

MIS2000 Lab -- ASP.NET專題實務 / 線上教學文件

MIS2000 Lab 發表在 痞客邦 PIXNET 留言(0) 人氣()