close
[轉貼]NPOI,在Excel欄位裡面,取出運算的「值」而非「公式」這裡是我的文章備份:http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/09/npoi_excel_formula_value.aspx[轉貼]NPOI,在Excel欄位裡面,取出運算的「值」而非「公式」 之前介紹過的 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元(免郵資) 上集全新改寫。範例增加66%,內容增加35%。銷售半年,高達三刷! 下集(第二版,黑皮書)上市一個月熱銷再刷。2010一年內熱銷四刷! 下集內容增加66%。 上下兩集將近2,000頁,堪稱國內 [最詳盡]的ASP.NET範例教學。 ............................. 寫信給我,mis2000lab (at) yahoo.com.台灣...... .msgcontent .wsharing ul li { text-indent: 0; } 分享 Facebook Plurk YAHOO! .
全站熱搜
留言列表