使用OpenXML

时间:2017-10-12 18:12:00

标签: c# excel openxml

我的情况是以Excel电子表格的形式向我的团队提供数据。我们希望自动导入该电子表格中的数据。尝试使用C#和OpenXML,我发现行为不一致。

单元格D4包含公式" = HYPERLINK(AO4,AH4)",D5包含公式" = HYPERLINK(AO4,AH4)",单元格D6包含公式" = HYPERLINK(AO6,AH6)"

然而,当OpenXML正确读取D4和D5的内容时,D6的Cell不包含我期望的内容。

检查调试器中的每个Cell,我看到一些奇怪的东西:

对于D4,我看到(和D5是一致的):

CellFormula  "HYPERLINK(AO4,AH4)"
CellMetaIndex null
CellReference "D4"
CellValue     "-"
DataType      "str"

但是对于D6:

CellFormula  ""
CellMetaIndex null
CellReference "D6"
CellValue     "-"
DataType      "str"

我有点失落。为什么看起来的两个单元格的CellFormula在一种情况下会返回公式,而在另一种情况下什么也没有? (两个单元格的数字格式一般)。

ClosedXML API缺少对我们使用的几个函数的支持(我们需要合并多个工作簿,因为它不支持对外部工作簿的引用)。 Excel互操作API可以毫无问题地读取单元格,但这需要在服务器上安装Excel,从而在从任务计划程序启动时权限使Excel互操作正确运行等。

OpenXML似乎是最干净的解决方案,但我很难理解为什么API的行为似乎不一致。我没有看到D4 / D5和D6之间的任何差异(并且问题在其他单元格中重复出现)。我希望有一些简单的东西让我错过了以前遇到的人。

感谢, -Steven

0 个答案:

没有答案