我一直在网站上搜索并搜索答案,但找不到解决方案 - 所有人都主要讨论如何添加新的数字格式添加到文档并应用。如何使用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 –