使用SpreadSheetGear的Advanced Cells API时使用范围名称建立索引

时间:2015-11-09 04:29:30

标签: excel spreadsheetgear

我正在处理包含许多工作表甚至更多公式的Excel文件。我可以使用它们的范围名称引用所有15K +输入单元格,这比仅使用列{1}}的列行索引更好,更易读。

由于文件很大,我想使用WriteResult({ "nInserted" : 0, "writeError" : { "code" : 121, "errmsg" : "Document failed validation" } }) 接口来利用任何可能的加速。但是我注意到"AE2318"接口可以使用基于0的行和列索引编制索引。

我怎样才能使用范围名称来引用单元格?

我想到的一件事是构建一个字典,在那里我将存储哪个范围(具有给定范围名称的单元格)驻留在哪个工作表和哪个行/列上。在SpreadsheetGear.Advanced.Cells功能区上的Excel中,IValues包含所有这些信息,但我如何使用Formulas访问该信息?该信息可从VBA获得。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式访问命名范围:

  1. IWorkbook。Names [...],其中包含整个工作簿的所有命名范围。
  2. IWorksheet。Names [...],其中包括"工作表范围"给定工作表的命名范围。
  3. 这些集合可以通过foreach循环进行迭代,该循环将为每个命名范围返回IName个对象。您还可以通过命名范围(字符串)名称或集合中的索引来索引这些集合。一旦你有一个表示给定命名范围的IName对象,并假设它实际上引用了一个基础IRange(考虑Named Ranges也可以引用静态值,如="Hello World!"),你可以使用IName 。RefersToRange获取IRange对象和任何从零开始的行/列索引和行/列计数(IRange。Row / ColumnRowCount / {{3}用于"高性能" ColumnCount界面。