Начиная с версии 0.87, Reogrid поддерживает технологию WPF. Поэтому в архиве с файлами компонента приведено два варианта компонента: WPF-версия содержит эти три буквы в названии папки.
Компонент Reogrid доступен в трёх основных редакциях:
Для многоязычных приложений или для приложений с неанглоязычным интерфейсом рекомендуется использовать либо минимальную редакцию, либо максимальную.
Далее подразумевается, что в проект добавлен компонент Reogrid с именем rgrid
rgrid.SetSettings(Параметр типа ReoGridSettings, Значение типа Boolean) Значение = True включает параметр Значение = False выключает параметр 'VB rgrid.SetSettings(Параметр As ReoGridSettings, Значение As Boolean) //C# rgrid.SetSettings(ReoGridSettings Параметр, Bool Значение) 'Выключение параметра ReoGridSettings.View_ShowScrolls rgrid.SetSettings(Параметр, False) Пример rgrid.SetSettings(ReoGridSettings.View_ShowScrolls, False) Выключение сразу двух параметров 'VB rgrid.SetSettings(Параметр1 As ReoGridSettings Or Параметр2 As ReoGridSettings, False) //C# rgrid.SetSettings(ReoGridSettings Параметр1 | ReoGridSettings Параметр2, False);
'VB rgrid.EnableSettings(Параметр As ReoGridSettings) //C# rgrid.EnableSettings(ReoGridSettings Параметр);
'VB rgrid.DisableSetting(Параметр As ReoGridSettings) //C# rgrid.DisableSetting(ReoGridSettings Параметр);
'VB Dim value As Boolean = rgrid.HasSetting(Параметр As ReoGridSettings) //C# bool value = rgrid.HasSetting(ReoGridSettings Параметр);
В данной таблице приведены параметры, которые можно включать и выключать указанными выше способами
Параметр | Описание |
---|---|
ReoGridSettings.Behavior_All | Все параметры с префиксом Behavior |
ReoGridSettings.Behavior_AutoPickingCellAddress | Разрешить выбирать адрес из выделенной ячейки в процессе правки формулы |
ReoGridSettings.Behavior_MouseWheelToScroll | Разрешить прокрутку таблицы колесом мыши |
ReoGridSettings.Behavior_MouseWheelToZoom | Разрешить пользователю масштабировать таблицу колесом мыши |
ReoGridSettings.Behavior_ShortcutKeyToZoom | Разрешить пользователю масштабировать таблицу горячей клавишей (ctrl + plus,minus) |
ReoGridSettings.Behavior_AllowUserPageBreaks | Разрешить пользователю вставлять или настраивать разрывы страниц с помощью мыши |
Правка | |
ReoGridSettings.Edit_Readonly | Элемент управления будет работать в режиме "Только для чтения". Внесение каких-либо изменений запрещено |
ReoGridSettings.Edit_AutoFormatCell | Разрешить форматировать данные после правки текста пользователем |
ReoGridSettings.Edit_FriendlyPercentInput | Разрешить отображение сомвола "процент" при вводе пользоателем значения ячейки с "процентным" форматом данных |
ReoGridSettings.Edit_AutoAdjustRowHeight | Разрешить настройку высоты строк при увеличении пользователем размера (кегля) шрифта |
ReoGridSettings.Edit_AllowAdjustRowHeight | Разрешить пользователю настраивать высоту строк с помощью мыши |
ReoGridSettings.Edit_AllowAdjustColumnWidth | Разрешить пользователю настраивать длину столбца с помощью мыши (перетаскиванием) |
Отображение, внешний вид | |
ReoGridSettings.View_ShowColumnHeader | Показывать заголовки столбцов |
ReoGridSettings.View_ShowRowHeader | Показывать заголовки строк |
ReoGridSettings.View_ShowXRuler | Показывать горизонтальную линейку (зарезервировано) |
ReoGridSettings.View_ShowYRuler | Показывать вертикальную линейку (зарезервировано) |
ReoGridSettings.View_ShowGridLine | Показывать линии сетки |
ReoGridSettings.View_ShowScrolls | Показывать полосы прокрутки |
ReoGridSettings.View_ShowHorScroll | Показывать горизонтальную полосу прокрутки |
ReoGridSettings.View_ShowVerScroll | Показывать вертикальную полосу прокрутки |
ReoGridSettings.View_AllowShowRowOutlines | Разрешить показывать внешние границы строк, если они не замкнуты (outlines exiting) |
ReoGridSettings.View_AllowShowColumnOutlines | Разрешить показ внешних границ столбцов, если они незамкнуты (outlines exiting) |
ReoGridSettings.View_MouseWheelToScroll | Разрешить прокрутку листа колесом мыши |
ReoGridSettings.View_ShowPrintAreas | Включить отображение областей печати для печатаемых областей |
Выполнение сценариев / Script Execution | |
ReoGridSettings.Script_AutoRunOnload | Разрешить автозапуск сценария после загрузки таблицы из потока |
ReoGridSettings.Script_PromptBeforeAutoRun | Показывать ли сообщение, подсказывающее пользователю о запуске сценария, когда сценарий загружен из потока. |
Событие | Когда возникает |
---|---|
BeforeCellEdit | Перед любыми изменениями в ячейках в режиме правки |
AfterCellEdit | Когда какие-либо ячейки правятся пользователем |
CellDataChanged | Когда изменяются данные в ячейках |
CellMouseEnter | Когда указатель мыши перемещается в ячейку и зависает над ней |
CellMouseLeave | Когда указатель мыши покидает ячейку |
CellMouseDown | Когда происходит нажатие кнопки мыши, а указатель находится в ячейке |
CellMouseUp | Когда происходит отпускание кнопки мыши, а указатель находится в ячейке |
CellMouseMove | Когда указатель мыши движется внутри ячейки |
Событие | Когда возникает |
---|---|
RowInserted | Когда пользователь вставляет строки |
RowDeleted | Когда пользователь удаляет строки |
ColInserted | Когда пользователь вставляет столбцы |
ColDeleted | Когда пользователь вставляет столбцы |
Событие | Когда возникает |
---|---|
RangeMerged | Когда объединяются ячейки диапазона |
RangeUnmerged | Когда отменяется объединение ячеек диапазона |
RangeStyleChanged | Когда происходит установка стиля |
Событие | Когда возникает |
---|---|
BorderAdded | Когда добавляются границы |
BorderRemoved | Когда удаляются границы |
Событие | Когда возникает |
---|---|
SelectionRangeChanged | При изменении диапазона выделения |
SelectionRangeChanging | Во время изменения выделения мышью |
SelectionModeChanged | При изменении режима выделения |
SelectionStyleChanged | При изменении стиля выделения |
SelectionForwardDirectionChanged | При изменении направления перемещения фокуса ввода |
SelectionMovedForward | Когда выделение переносится в следующую позицию |
HoverPosChanged | Когда указатель мыши движется над ячейками |
FocusPosChanged | Когда фокус переходит к другой ячейке |
Событие | Когда возникает |
---|---|
OutlineAdded | Когда в таблицу добавлена внешняя граница |
OutlineRemoved | Когда внешняя граница удалена из таблицы |
BeforeOutlineCollapse | Когда пользователь щёлкает на кнопке "-" за пределами таблицы - для её сворачивания |
AfterOutlineCollapse | Когда граница замкнулась |
BeforeOutlineExpand | Когда пользователь щёлкает на кнопке "+" за пределами таблицы - для её разворачивания |
AfterOutlineExpand | Когда внешняя граница развёрнута |
Событие | Когда возникает |
---|---|
ActionPerformed | При выполнении любых действий |
Undid | Когда действие undid |
Redid | Когда действие redid |
Событие | Когда возникает |
---|---|
GridScaled | Во время масштабирования элемента управления (уменьшение/увеличение масштаба) |
FileLoaded | Когда в элемент управления загрузились данные из файлового потока (load from given stream will not fire this event) |
FileSaved | Когда содержимое элемента управления сохранено в файловом потоке (save into given stream will not fire this event) |
Resetted | Когда состояние элемента управление сбрасывается к значению по умолчанию |
CellsFrozen | Когда в таблице фиксируются (замораживаются) какие-либо ячейки |
CellsUnfreeze | Когда отменена фиксация (заморозка) |
Событие | Когда возникает |
---|---|
BeforeCopy | Перед операцией копирования |
AfterCopy | Во время копирования диапазона из буфера обмена (Clipboard) |
BeforePaste | Перед операцией вставки |
AfterPaste | Во время вставки из буфера обмена (Clipboard) |
BeforeCut | Перед операцией вырезания |
AfterCut | Когда пользователь вырезает содержимое диапазона |
OnPasteError | При возникновении ошибок в процессе операции вставки |
'VB rgrid.CurrentWorksheet(1, 1) = "Какой-то текст" rgrid.CurrentWorksheet("B2") = "Какой-то текст" //C# rgrid.CurrentWorksheet(1, 1) = "Какой-то текст"; rgrid.CurrentWorksheet("B2") = "Какой-то текст";
'VB Dim myRange = rgrid.CurrentWorksheet.DefineNamedRange("мой_диапазон", 3, 1, 5, 4) //C# dynamic myRange = rgrid.CurrentWorksheet.DefineNamedRange("мой_диапазон", 3, 1, 5, 4);
'VB myRange.Data = New Object(,) {{1, 2, 3, 4}, {0.1, 0.2, 0.3, 0.4}, {"яблоко", "банан", "апельсин", "груша"}} //C# myRange.Data == new object[ + 1, + 1] {{1,2,3,4},{0.1,0.2,0.3,0.4},{"яблоко","банан","апельсин","груша"}}
rgrid.CurrentWorksheet.SetColumnsWidth(1, 4, 100)
'VB rgrid.CurrentWorksheet.Cells("E5").Style.BackColor = Color.LightYellow //C# rgrid.CurrentWorksheet.Cells("E5").Style.BackColor == Color.LightYellow;
'VB rgrid.CurrentWorksheet.SetColumnsWidth(1, 4, 100) //C# rgrid.CurrentWorksheet.SetColumnsWidth(1, 4, 100);
'VB rgrid.CurrentWorksheet.ColumnHeaders(0).WidthInPixel = 100 rgrid.CurrentWorksheet.ColumnHeaders(1).WidthInPixel = 500 //C# rgrid.CurrentWorksheet.ColumnHeaders(0).WidthInPixel = 100; rgrid.CurrentWorksheet.ColumnHeaders(1).WidthInPixel = 500;
'VB Dim strFilename As String = Application.StartupPath & "\docs\calendar_2008_1.rgf" Using editor As ReoGridEditor = New ReoGridEditor() editor.CurrentFilePath = strFilename editor.CurrentFilePath = strFilename editor.ShowDialog() End Using Cursor = Cursors.Default //C# string strFilename = Application.StartupPath + "\\docs\\calendar_2008_1.rgf"; using (ReoGridEditor editor = new ReoGridEditor()) { editor.CurrentFilePath = strFilename; editor.CurrentFilePath = strFilename; editor.ShowDialog(); } Cursor = Cursors.Default;
Для определения факта изменения стиля отображения ReoGrid использует перечисление ‘PlainStyleFlag’
Сначала необходимо указать флаги изменяемых параметров, а затем уже и указать значения
Всегда применяем стиль к диапазону. а не к отдельной ячейке.
rgrid.CurrentWorksheet.SetRangeStyle(Диапазон типа ReoGridRange, Стиль типа ReoGridRangeStyle)
rgrid.CurrentWorksheet.DoAction(new RGSetRangeStyleAction(Диапазон типа ReoGridRange, Стиль типа ReoGridStyleObject))
rgrid.CurrentWorksheet.getCell(0, 0).style.backgroundColor = 'red'
Получаем стили диапазона или ячейки:
rgrid.CurrentWorksheet.GetRangeStyle(Диапазон типа ReoGridRange) rgrid.CurrentWorksheet.GetCellStyle(Позиция_ячейки типа ReoGridPos)
Удаляем стиль для диапазона, даже если он состоит из одной ячейки.
Флаг PlainStyleFlag позволяет указать, какие стили должны быть удалены. В примере показано удаление стиля фона для выбранного диапазона ячеек.
rgrid.CurrentWorksheet.RemoveRangeStyle(New ReoGridRange(2, 2, 3, 3), PlainStyleFlag.BackAll)
Убираем фоновый цвет для выбранного диапазона:
rgrid.CurrentWorksheet.DoAction(New RGRemoveRangeStyleAction(New ReoGridRange(2, 2, 3, 3), PlainStyleFlag.BackAll))
Объединяем ячейки, начиная с (2,1). Количество строк - 3, количество столбцов - 4:
rgrid.CurrentWorksheet.MergeRange(New ReoGridRange(2, 1, 3, 4))
Диапазон объединения начинается в (0,0), содержит 4 строки и 6 столбцов:
rgrid.CurrentWorksheet.DoAction(New RGMergeRangeAction(New ReoGridRange(0, 0, 4, 6)))Только первая слева-сверху ячейка в диапазоне объединения является объединённой ячейкой.
Для проверки факта объединения ячеек служит метод IsMergedCell:
'VB Dim isMergedCell As Boolean = rgrid.CurrentWorksheet.IsMergedCell(2, 1) 'ложь/false Dim isMergedCell As Boolean = rgrid.CurrentWorksheet.IsMergedCell(2, 2) 'истина/true Dim isMergedCell As Boolean = rgrid.CurrentWorksheet.IsMergedCell(2, 3) 'ложь/false //C# bool isMergedCell = rgrid.CurrentWorksheet.IsMergedCell(2, 1); // ложь/false bool isMergedCell = rgrid.CurrentWorksheet.IsMergedCell(2, 2); // истина/true bool isMergedCell = rgrid.CurrentWorksheet.IsMergedCell(2, 3); // ложь/false
Объединенная ячейка имеет два свойства, которые используются для определения того, сколько ячеек было объединено:
Ячейка в позиции 2:1 является объединённой, она содержит 4 строки (rowspan=4) и 3 столбца (colspan=3).
Для получения этих данных используем следующий код:
'VB Dim rowspan As Integer = rgrid.CurrentWorksheet.Cells(1, 2).GetRowspan() 'количество объединённых строк / number of rowspan Dim colspan As Integer = rgrid.CurrentWorksheet.Cells(1, 2).GetColspan() 'количество объединённых столбцов / number of colspan //C# int rowspan = rgrid.CurrentWorksheet.Cells(1, 2).GetRowspan(); //количество объединённых строк / number of rowspan int colspan = rgrid.CurrentWorksheet.Cells(1, 2).GetColspan(); //количество объединённых столбцов / number of colspan
Свойство IsMergedCell позволяет определить факт объединения:
'VB Dim isMergedCell As Boolean = rgrid.CurrentWorksheet.Cells(1, 2).IsMergedCell //C# bool isMergedCell = rgrid.CurrentWorksheet.Cells(1, 2).IsMergedCell;
ReoGrid поддерживает метод GetMergedCellOfRange, который используется для поиска объединенной ячейки в определенном диапазоне.
'VB Dim output As ReoGridCell = rgrid.CurrentWorksheet.GetMergedCellOfRange(Input) //C# ReoGridCell output = rgrid.CurrentWorksheet.GetMergedCellOfRange(Input());
Ячейки, объединённые с другими, становятся недействительными. Недействительной ячейке нельзя задать данные или стили.
Проверить ячейки позволяет метод IsValidCell.
'VB rgrid.CurrentWorksheet.IsValidCell(2, 2) ' true rgrid.CurrentWorksheet.IsValidCell(2, 3) ' false //C# rgrid.CurrentWorksheet.IsValidCell(2, 2) //true rgrid.CurrentWorksheet.IsValidCell(2, 3) //false
Существует метод для определения всей ячейки, если известна её часть.
'VB Dim outputRange As ReoGridRange = rgrid.CurrentWorksheet.CheckMergedRange(inputRange) //C# ReoGridRange outputRange = rgrid.CurrentWorksheet.CheckMergedRange(inputRange);
Если попытаться объединить 2 и более ячеек, каждая из которых уже входит в состав своего объединения, то возникнет исключение RangeIntersectionException.
Пользовательский код позволяет отловить это исключение и прервать текущую операцию.
Метод CheckIntersectedMergingRange применяется для проверки принадлежности любой ячейки определённому диапазону. Этот метод помогает избегать указанное выше исключение.
'VB Dim outputRange as ReoGridRange = rgrid.CurrentWorksheet.CheckIntersectedMergingRange(inputRange) //C# ReoGridRange outputRange = rgrid.CurrentWorksheet.CheckIntersectedMergingRange(inputRange);
Если выражение outputRange.IsEmpty является истинным, то диапазон inputRange безопасен. Существует еще один метод, делающий то же самое.
'VB Dim rs as boolean = rgrid.CurrentWorksheet.HasIntersectedMergingRange(inputRange) MsgBox("Слияние ячеек") //C# bool rs = rgrid.CurrentWorksheet.HasIntersectedMergingRange(inputRange); Interaction.MsgBox("Слияние ячеек");
Для использования встроенных типов ячеек нужно импортировать соответствующее пространство имён: unvell.ReoGrid.CellTypes
Ячейки в ReoGrid могут иметь основу, унаследованную от CellBody или реализованную через интерфейс ICellBody.
ReoGrid содержит следующие встроенные типы ячеек:
Для использования форматов данных нужно импортировать пространство имён unvell.ReoGrid.DataFormat
Указываем формат данных ячейки с помощью метода SetRangeDataFormat:
SetRangeDataFormat(Диапазон типа ReoGridRange, Флаг типа CellDataFormatFlag, Аргумент типа Object) 'VB SetRangeDataFormat(Диапазон As ReoGridRange, Флаг As CellDataFormatFlag, Аргумент As Object) //C# SetRangeDataFormat(ReoGridRange диапазон, CellDataFormatFlag флаг, object аргумент); Или применяем Действие RGSetRangeDataFormatAction(Диапазон типа ReoGridRange, Формат типа CellDataFormatFlag, Аргумент типа object) 'VB RGSetRangeDataFormatAction(Диапазон As ReoGridRange, Формат As CellDataFormatFlag, Аргументы As object) //C# RGSetRangeDataFormatAction(ReoGridRange Диапазон, CellDataFormatFlag Формат, object Аргумент)
Тип | CellDataFormatFlag | Аргумент |
---|---|---|
Числовой (Number) | CellDataFormatFlag.Number | NumberDataFormatter.NumberFormatArgs |
Дата/Время (DateTime) | CellDataFormatFlag.DateTime | DateTimeDataFormatter.DateTimeFormatArgs |
Процентный (Percent) | CellDataFormatFlag.Percent | PercentDataFormatter.PercentFormatArgs |
Денежный (Currency) | CellDataFormatFlag.Currency | CurrencyDataFormatter.CurrencyFormatArgs |
Текстовый (Text) | CellDataFormatFlag.Text | Нет |
Устанавливаем для ячеек числовой формат данных:
'VB Dim FFNum As New NumberDataFormatter.NumberFormatArgs FFNum.DecimalPlaces = 4 'Количество знаков после запятой/точки: 0,1234 FFNum.NegativeStyle = NumberDataFormatter.NumberNegativeStyle.RedBrackets 'стиль отрицательных чисел FFNum.UseSeparator = True 'Использовать разделитель: 123,456 rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Number, FFNum) //C# NumberDataFormatter.NumberFormatArgs FFNum = new NumberDataFormatter.NumberFormatArgs(); FFNum.DecimalPlaces = 4; //Количество знаков после запятой/точки: 0,1234 FFNum.NegativeStyle = NumberDataFormatter.NumberNegativeStyle.RedBrackets; //стиль отрицательных чисел FFNum.UseSeparator = true; //Использовать разделитель: 123,456 rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Number, FFNum);
'VB Dim FFDT As New DateTimeDataFormatter.DateTimeFormatArgs FFDT.CultureName = "ru-RU" 'Культура "ru-RU" FFDT.Format = "dd/MM/yyyy" 'Шаблон rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.DateTime, FFDT) //C# DateTimeDataFormatter.DateTimeFormatArgs FFDT = new DateTimeDataFormatter.DateTimeFormatArgs(); FFDT.CultureName = "ru-RU"; //Культура "ru-RU" FFDT.Format = "dd/MM/yyyy"; //Шаблон rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.DateTime, FFDT);
'VB Dim FFPer As New PercentDataFormatter.PercentFormatArgs FFPer.DecimalPlaces = 2 'Количество знаков после запятой или точки rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Percent, FFPer) //C# PercentDataFormatter.PercentFormatArgs FFPer = new PercentDataFormatter.PercentFormatArgs(); FFPer.DecimalPlaces = 2; //Количество знаков после запятой или точки rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Percent, FFPer);
'VB Dim FFCur As New CurrencyDataFormatter.CurrencyFormatArgs FFCur.CultureEnglishName = "ru-RU" 'Культура "ru-RU" FFCur.DecimalPlaces = 1 'Количество знаков после запятой/точки FFCur.Symbol = "р." 'Символ р. rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Currency, FFCur) //C# CurrencyDataFormatter.CurrencyFormatArgs FFCur = new CurrencyDataFormatter.CurrencyFormatArgs(); FFCur.CultureEnglishName = "ru-RU"; //Культура "ru-RU" FFCur.DecimalPlaces = 1; //Количество знаков после запятой/точки FFCur.Symbol = "р."; //Символ р. rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Currency, FFCur);
'VB rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Text, Nothing) //C# rgrid.CurrentWorksheet.SetRangeDataFormat(ReoGridRange.EntireRange, CellDataFormatFlag.Text, null);
Как и Microsoft Excel, ReoGrid поддерживает ссылки на ячейку и диапазон.
Пример формулы со ссылками на ячейки (A1, B1) и диапазон (A1:C3)
'VB rgrid.CurrentWorksheet("H8") = "=A1+B1-SUM(A1:C3)+AVERAGE(D1:H5)" //C# rgrid.CurrentWorksheet("H8") == "=A1+B1-SUM(A1:C3)+AVERAGE(D1:H5)";
'VB Dim rangeList = rgrid.CurrentWorksheet.GetCellFormulaReferenceRanges("H8") //C# dynamic rangeList = rgrid.CurrentWorksheet.GetCellFormulaReferenceRanges("H8");
Функция | Описание |
---|---|
INDIRECT | Возвращает ссылку, заданную текстовой строкой |
ADDRESS | Возвращает ядрес ячейки на листе |
COUNT | Возвращает количество ячеек, содержащих числа, и подсчитывает числа в списке аргументов |
COUNTIF | Возвращает количество ячеек в заданном диапазоне, которые отвечают единому заданному критерию |
SUM | Возвращает сумму значений чисел. Пример: SUM(B11:E12) |
SUMIF | Возвращает сумму значений в диапазоне, которые соответствуют указанным критериям |
AVERAGE | Возвращает среднее арифметическое значение указанных аргументов |
LOOKUP | Возвращает значение либо из одной строки, либо одного столбца диапазона или массива |
ROWS | Возвращает количество строк в ссылке (reference) или массиве |
COLUMNS | Возвращает количество столбцов в ссылке (reference) или массиве |
INDEX | Возвращает значение или ссылку (reference) на значение из таблицы или диапазона ячеек |
CEILING | Возвращает число, округляемое в сторону увеличения, от нуля до ближайшего кратного указанному значению |
LEN | Возвращает количество символов в текстовой строке |
LENB | Возвращает количество байт, используемых для представления знаков в текстовой строке |
ROUND | Округление числа до ближайшего значения. Примеры: ROUND(B8), ROUND(E8, 2) |
Возможность трассировки зависимостей ячеек в формулах на манер Excel доступна с ерсии 0.8.6
Для включения трассировки, необходимо установить для параметра ячейки TraceFormulaPrecedent значение True:
'VB rgrid.CurrentWorksheet("C2") = 10 rgrid.CurrentWorksheet("C3") = 5 Dim cell As ReoGridCell = rgrid.CurrentWorksheet.Cells("C5") cell.Formula = "=C2+C3" cell.TraceFormulaPrecedents = True 'или путём вызова TraceCellPrecedents: rgrid.CurrentWorksheet.TraceCellPrecedents("C5") //C# rgrid.CurrentWorksheet("C2") = 10; rgrid.CurrentWorksheet("C3") = 5; ReoGridCell cell = rgrid.CurrentWorksheet.Cells("C5"); cell.Formula = "=C2+C3"; cell.TraceFormulaPrecedents = true; //или путём вызова TraceCellPrecedents: rgrid.CurrentWorksheet.TraceCellPrecedents("C5");
При изменении формулы трассирующие стрелки исчезнут. Следующий код позволит постоянно отображать трассирующие стрелки:
'VB 'Добавляем обработчик события AddHandler rGrid.CellDataChanged, AddressOf rgrid_CellDataChanged Sub rgrid_CellDataChanged(ByVal sender As Object, ByVal e As unvell.ReoGrid.Events.CellEventArgs) e.Cell.TraceFormulaPrecedents = True End Sub //C# rgrid.CellDataChanged += (s, e) => e.Cell.TraceFormulaPrecedents = true;
'VB Dim namedRange As NamedRange = rgrid.CurrentWorksheet.DefineNamedRange("items", "B2:E2") //C# NamedRange namedRange = rgrid.CurrentWorksheet.DefineNamedRange("items", "B2:E2");
'VB namedRange.Data = New Object() {1, 3, 5, 7} //C# namedRange.Data == new object[] {1,3,5,7}
'VB rgrid.CurrentWorksheet("F2") = "=SUM(items)" //C# rgrid.CurrentWorksheet("F2") == "=SUM(items)";