我一直在谷歌上搜索并在网站上搜索答案,但我找不到解决方案 - 各地人们大多讨论如何在文档中添加新的数字格式并应用它.
我需要的是将单元格值作为带有应用格式的字符串 - 即与Excel显示的字符串相同.
我已经认为没有简单的方法或内置函数可以返回单元格的现成格式化值.
所以在我看来,要获得我需要做两件事的价值:1.获取格式字符串.2.使用此字符串格式化单元格值.
但是这两个步骤都有问题.
可以轻松获取包含NumberFormatId的CellFormat实例:
CellFormat cellFormat = (CellFormat) document.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ElementAt(cell.StyleIndex);
Run Code Online (Sandbox Code Playgroud)
但是,如果id对应于标准预定义格式之一,如何使用此NumberFormatId获取格式字符串?(即低于160)它们不在电子表格文档中,我无法相信它们应该在应用程序中进行硬编码.
此外,一旦获得格式字符串,如何将其应用于单元格值?到目前为止我理解,代码应该检查单元格值的类型,如果是数字 - 使用格式字符串将其转换为字符串.
我发现这个页面提到了使用Microsoft.Office.Excel.Interop,但我更愿意继续使用OpenXML SDK.
总的来说,我很惊讶在Web上找到这个问题的确切答案是如此困难,因为我认为这将是许多开发人员在日常工作中需要的东西.