提取 MS Excel-Range 的 XML 表示形式

问题描述 投票:0回答:1

我目前正在尝试将特定的 Excel 文件有效地保存在数据库中,以便我可以从保存的文件的不同部分创建一个新文件。

情况: 我有很多 Excel 文件,我想通过 VB.Net-AddIn 将选定的数据存储在数据库中。其中一些数据很容易存储,因为它的结构良好(所以基本上我可以使用类型和相应的信息来存储它)。除了结构良好的数据之外,还在相应行下方进行了辅助计算,如下所示:

第 1 行:我可以存储的一些结构化数据:产品类型、数量…… 第 2-10 行:非结构化辅助计算,例如数量的计算,可以在任何单元格中完成。格式化是在整行中完成的。

方法: 我的想法是将非结构化部分存储为 XML(使用 RC 公式)。通过这种方式,我可以轻松地将其分配给第一行中的结构化数据,并且不仅可以将其保存在数据库中,还可以将其读回以在新的 Excel 文件中创建相同的数据/公式。

问题: 我可以遍历所有单元格,读取公式/格式,并将它们一一解析为 XML(类似于 this,但保存公式而不是仅保存值)。但这似乎效率很低,特别是考虑到格式化可能会覆盖整行。 Excel 已经非常有效地将所有这些信息保存为 XML 文件。有什么方法可以读出特定范围的 XML 表示,或者有更有效的方法来自己解析它(不限制非结构化数据/公式所在的区域)?

我并不是在寻找最终的解决方案(好吧,如果有一个我不会说不),但我有一种感觉,我忽略了一些事情,或者需要输入来解开我头脑中的结。

提前感谢大家!

excel xml vb.net
1个回答
0
投票

是的,您可以使用 Value 参数读出范围的 XML。

Dim r As Object   'r is a Range
r = ws.UsedRange  'assuming you already have a worksheet ref (set to ws)

Dim XMLRepresentation As String
XMLRepresentation = r.Value(11)

这将为您提供公式、值、格式以及有关范围的所有信息

© www.soinside.com 2019 - 2024. All rights reserved.