工作表范围不包含新创建的范围

时间:2015-09-09 08:48:19

标签: aspose-cells

在我当前的项目中,我想查找工作表的范围,但lookupWorksheet.Cells.Ranges属性在Workbook.Worksheets.GetNamedRanges()时不包含任何元素。

我的初始代码是

var sheetRanges = worksheet.Cells.Ranges.Cast<Range>().ToList();

我不得不把它改成更复杂的

var sheetRanges = worksheet.Workbook.Worksheets.GetNamedRanges();
if (sheetRanges != null) {
    sheetRanges = sheetRanges.Where(range => range.Worksheet == worksheet).ToArray();
}

范围是否早先由代码创建了吗? 我是否必须承诺&#39;那个范围可能在某个地方?

2 个答案:

答案 0 :(得分:0)

请注意,您必须设置 Range.Name 属性才能使您的范围显示在 Workbook.Worksheets.GetNamedRanges()方法中。

请参阅以下代码及其评论。它创建一个范围A1:A3,它出现在GetNamedRanges()方法

返回的集合中
Workbook workbook = new Workbook();

Worksheet worksheet = workbook.Worksheets[0];
Range range = worksheet.Cells.CreateRange("A1:A3");
range.Name = "MyRange";

//Now your range will appear inside this collection
var sheetRanges = worksheet.Workbook.Worksheets.GetNamedRanges();

Console.WriteLine(sheetRanges[0]);

以上代码的控制台输出供您参考。

Aspose.Cells.Range [ MyRange : Sheet1!A1:A3 ]

注意:我在Aspose

担任开发人员传播者

答案 1 :(得分:0)

请使用 Worksheet.Cells.AddRange()方法在 Worksheet.Cells.Ranges 集合中添加范围。

请参阅以下示例代码供您参考。

Workbook workbook = new Workbook();

Worksheet worksheet = workbook.Worksheets[0];

Range range = worksheet.Cells.CreateRange("A1:A3");

worksheet.Cells.AddRange(range);

Console.WriteLine(worksheet.Cells.Ranges[0]);