2015-09-09 2 views
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(); 
} 

ли это важно, что диапазон был создан код раньше?
Должен ли я «совершать» этот диапазон где-то?

ответ

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 ] 

Примечание: Я работаю евангелиста Developer в Aspose

+0

я присвоить имя и это уже проявляется в GetNamedRanges, но я хочу, чтобы показать в worksheet.Cells.Ranges –

+0

Спасибо за ваше разъяснение. Вам нужно использовать метод AddRange(), чтобы добавить Range внутри коллекции Ranges. Пожалуйста, проверьте мой второй ответ на образец кода. – shakeel

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]);