0

在我当前的项目中,我想查找工作表的范围,但该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();
}

范围是由代码之前创建的有关系吗?
我是否必须在某个地方“提交”该范围?

4

2 回答 2

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 担任开发人员布道师

于 2015-09-09T09:40:24.577 回答
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]);
于 2015-09-09T14:02:54.920 回答