- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正忙于开发一个从 MS Excel (2016) 文件导入数据的组件。该组件使用 MS OpenXML SDK2.5 库。 MS Excel 的最终用户安装基于荷兰国家/地区设置。该文件包含一列财务数据(数字)等。该列的位置事先未知。
为了确定单元格是否包含数字数据,我评估属性 Cell.DataType(类型为 CellValues,是一个枚举)。乍一看,这个属性似乎是确定这一点的完美候选者。 CellValues 的可能值为: bool 值、数字、错误、共享字符串、字符串、内联字符串或日期。所以我希望 Cell.DataType 设置为 CellValues.Number。经过一些调试后,我发现当单元格包含数字数据时,Cell.DataType 为 null。
在互联网上搜索解释时,我发现了以下 MSDN 文章: https://msdn.microsoft.com/en-us/library/office/hh298534.aspx
这篇文章准确地描述了我在调试过程中发现的内容:
The Cell type provides a DataType property that indicates the type of the data within the cell. The value of the DataType property is null for numeric and date types.
有人知道为什么 Cell.DataType 没有分别用 CellValues.Number 或 CellValues.Date 初始化吗?
确定单元格是否包含数值的最佳方法是什么?
最佳答案
Does anybody know why Cell.DataType is not initialized with respectively CellValues.Number or CellValues.Date?
从here看ECMA-376标准,Cell
的(缩写)XSD 如下所示:
<xsd:complexType name="CT_Cell">
...
<xsd:attribute name="t" type="ST_CellType" use="optional" default="n"/>
...
</xsd:complexType>
该属性代表类型。请注意,它是可选的,默认值为“n”
。第 18.18.11 节 ST_CellType(单元类型)列出了该类型的有效值:
b - boolean
d - date
e - error
inlineStr - an inline string
n - number (the default)
s - a shared string str - a formula string
您可以看到“n”
代表一个数字
。
What is the best way to determine if a cell contains a numeric value?
从上面看来,您可以检查 Cell.DataType
或 Cell.DataType
为 CellValues.Number
来判断一个单元格是否包含数字,但事情并不那么简单 - 大问题是日期。
日期的原始存储机制似乎是使用数字并依靠样式来知道该数字是否实际上是数字或者该数字是否代表日期。
令人困惑的是,规范已更新为包含 Date
类型,但并非所有日期都会使用日期类型。 Date
类型意味着单元格包含 ISO 8601 格式的日期,但它对于将日期存储为具有正确样式的数字来说是完全有效的。例如,以下 XML 代码段以 Number
和 Date
格式显示相同的日期(2017 年 2 月 1 日):
<sheetData>
<row r="1" spans="1:1" x14ac:dyDescent="0.25">
<c r="A1" s="1">
<v>42767</v>
</c>
</row>
<row r="2" spans="1:1" x14ac:dyDescent="0.25">
<c r="A2" s="1" t="d">
<v>2017-02-01</v>
</c>
</row>
</sheetData>
在 Excel 中打开时如下所示:
如果您需要区分日期和数字,那么您将需要查找任何数字(空 Cell.DataType
或 CellValues 的
),然后检查这些单元格的样式以确保它们是数字而不是伪装成数字的日期。Cell.DataType
)。 Number
关于c# - OpenXML SDK2.5(Excel): How to determine if a cell contains a numeric value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42390713/
我的 C# 应用程序使用 OpenXML 创建一个 MSWord 文档,其中已经包含多个表。最后一部分是添加条形图。我找不到这个案例的好例子。 谢谢你的帮助! 我正在从头开始创建文档。从...开始:
我正在使用一个模板文档,该文档使用 CustomXmlBlocks 作为占位符来放置表格和其他信息。我需要能够以某种方式将图像放入其中一个 block 中......即使它首先放入运行中。 图像以字节
我正在以编程方式将 OpenXML 段落添加到 Word 文档中,并且稍后我需要能够将该段落识别为我的段落。关于如何做到这一点有什么想法吗?我尝试插入 XML 注释和扩展属性,但是当您将文档保存在 w
我想使用 openxml 删除一列,我能够清除单元格的内容,但一直无法找到删除列的文档,以便在删除列时向左移动其他单元格。如何使用 openxml 删除列,它将单元格向左移动? 最佳答案 我发现 Op
我找不到任何可以告诉我 txBody 标签中的文本是否带有项目符号的指标,您能否请我确定我应该使用哪个指标来了解文本是项目符号还是普通文本? -谢谢 最佳答案 在 txBody 标签内,您可以查找标签
我目前正在尝试使用 PHPWord 库及其模板系统来处理 docx 文件。我已经找到并更新了这个库的某人(不记得名字,但它并不重要)的路径,该库可以使用表(复制其行,然后在每一行上使用 PHPWord
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Open Xml and Date format in Excel cell 我正在尝试从 DataGridView
我发现各种元素非常困惑。几乎每个元素似乎都有一个与之关联的“部分”,我不确定它们是如何粘合在一起的。 工作簿工作簿部分工作表工作表部分 我也对 DocumentFormat.OpenXml.Packa
我有一个存储在 Bitmap 对象中的图像,我想将其粘贴到 OpenXML 文档中。我尝试使用 MemoryStream 作为中间步骤,如下所示: ImagePart part = container
我试图理解 OpenXML 电子表格的内部文件内容。在一些文件中,我发现了这个字符串。其他标签具有相同的前缀。标签也可以有前缀 p: w: 等。 你能帮我理解这些前缀在标签中的含义吗? 最佳答案 您可
我的预期结果是: 你好 世界! 但是当我使用以下代码时: MainDocumentPart mainDocumentPart = package.AddMainDo
我需要将多个 .docx 文件收集到一个文件夹中,并将它们“链接”成一个将显示给用户的文档。 现在我已经阅读了 Brian Jones' article虽然听起来很有希望,但我遇到了一个问题。 当我使
我正在使用 OpenXml 生成 Excel 文件,在研究了大量不同的示例代码和 SDK Productivity Tool 后,终于得到了我想要的东西。只有一件事我无法回避。当我使用 Excel 打
我正在使用 openxml 创建 WordProcessingDocuments(工作正常,生成的 word 文档正是我想要的),现在我正在尝试使用 openxml Powertools 将这些新创建
我使用 OpenXML SDK 2.5 编写了一个 Word 文档,当我在 MS Office 中预览该文档时,该文档给出了预期的外观和格式。 现在我需要将此文档转换为 HTML 文档,我开始了解 O
我是 .net 编码员,我对 ColdFusion 真的很陌生。我编写了一个自动生成发票的 .dll 库。我需要使用 ColdFusion 应用程序中的库。我已经成功地将我的库中的类加载为 coldf
以前我发布了一个问题,如何将数据集中的数据填充到 excel 工作表中,而不是如何使用该数据创建图表。那篇文章不太走运,但现在我设法从数据集中填充数据,但也在努力根据该数据创建图表,我希望图表与我的数
快要被这个问题搞疯了。我确信它是如此简单,我只是错过了它,但我一生都无法找出如何使用 C# 中的 OpenXml SDK v2.0 更改 Word 2007 中的内容控件的内容。 我创建了一个带有纯文
我正在编写一个小应用程序,它将路径作为输入,然后获取该路径中的每个 docx 文件,用关键字替换每个超链接。 奇怪的是,我发现了两种超链接,第一种来自 WordprocessingDocument E
我有一段文字想在文档的中央出现。如何在docx4j中执行此操作?我目前正在使用: PPr paragraphProperties = factory.createPPr(); //cr
我是一名优秀的程序员,十分优秀!