我一直在網站上搜索並搜索答案,但找不到解決方案 - 所有人都主要討論如何添加新的數字格式添加到文檔並應用。如何使用OpenXML SDK應用格式化(格式化的單元格值)來獲取單元格值
我需要的是將單元格值作爲應用格式的字符串 - 即與Excel顯示的字符串相同。
我已經想到,沒有簡單的方法或內置函數會返回單元格的現成格式化值。
所以在我看來,要獲得我需要做的兩件事情的價值: 1.獲取格式字符串。 2.使用此字符串格式化單元格值。
但我在這兩個步驟都有問題。
人們可以很容易得到CellFormat實例,其中將包括NumberFormatId:
CellFormat cellFormat = (CellFormat) document.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ElementAt(cell.StyleIndex);
但如何與這個NumberFormatId獲得格式字符串,如果ID對應的標準定義的格式嗎? (即低於160)他們不在電子表格文檔中,我不相信他們應該在應用程序中進行硬編碼。
此外,一旦格式字符串以某種方式獲得,如何將其應用於單元格值?到目前爲止我的理解是,代碼應該檢查單元格值的類型,如果是Number - 使用格式字符串將其轉換爲字符串。
我發現this page其中提到使用Microsoft.Office.Excel.Interop,但我寧願留在OpenXML SDK只。
總的來說,我很驚訝,很難在Web上找到這個問題的明確答案,因爲我認爲這將是許多開發人員在日常工作中需要的。
這裏找到一些不錯的代碼:http://joymonscode.blogspot.se/2013/10/reading-excel-cell-with-number.html –