在我当前的项目中,我想查找工作表的范围,但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;那个范围可能在某个地方?
答案 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]);