Как перейти к столбцу в элементе управления SpreadsheetGear WorkBookView? - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно корректировать около 30-35 электронных таблиц каждую неделю.

Мне нужно посмотреть на столбец W и столбцы справа от столбца W. Когда я первоначально отображаю электронную таблицу, я вижу столбцы AP.Я вручную прокручиваю до столбца W и начинаю корректуру данных.

Я нажимаю следующую кнопку, которая переходит к следующему файлу.Мой код загружает следующую электронную таблицу:

WorkbookView1.ActiveWorkSheet = Workbook_Obj.ActiveWorksheet.
WorkbookView1.Update()

Иногда положение горизонтальной прокрутки остается прежним, и я вижу столбец W и некоторые столбцы справа от столбца W.

Но иногдаположение горизонтальной прокрутки меняется слева от столбца W, и я больше не вижу столбец W.

Я бы сделал что-то вроде этого:

' 23 = Column W
Col_Obj = WorkbookView1.Cells(0, 23)
' Or - find column by header text in row = 0.
Col_Obj - WorkbookView1.FindByText("Name")
Col_Obj.HorizontalScroll = Col_Obj.Location

Спасибо, Эд

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете установить IWorksheetWindowInfo. ScrollColumn (обратите внимание, что это свойство использует индекс, начинающийся с нуля, т. Е. Где столбец A - это индекс 0, B - 1 и т. Д.), Который устанавливает самый левый столбецотображается в окне.Обратите внимание, что есть свойство ScrollRow , если вам нужно установить позицию прокрутки строки.

Когда задействован WorkbookView, например, в вашем случае, может возникнуть ряд дополнительных факторов.определите, действительно ли настройки свойств, такие как ScrollColumn, вступят в силу для WorkbookView (это связано с тем фактом, что вы можете прикрепить один и тот же лист к нескольким элементам управления WorkbookView, и каждый WorkbookView может хранить свою собственную копию этой «информации окна»свойства).Кроме того, существуют некоторые поведенческие различия в работе SpreadsheetGear 2012 и 2017 в этом отношении.Приведенный ниже код должен работать в большинстве случаев и, надеюсь, также и у вас, хотя это может и не работать при определенных обстоятельствах ... например, если вы используете SpreadsheetGear 2017 и присоединяете этот рабочий лист к нескольким WorkbookView, что, я полагаю, не так;но если это так, я могу обновить этот ответ, чтобы лучше соответствовать вашей конкретной ситуации.

' Make local variable to the desired worksheet
Dim activeWorksheet = Workbook_Obj.ActiveWorksheet

' Reference cell to select and scroll to
Dim cellW1 = activeWorksheet.Cells("W1")

' Select the cell (this call alone can sometimes also automatically
' trigger the cell to be scrolled to as well, though it may not depending
' on the circumstances; and it may not make this cell the leftmost in the
' window...
cellW1.Select()

' ...to avoid any problems like mentioned above, explicitly set ScrollColumn 
' to the selected cell.  Set ScrollRow as well if desired.
activeWorksheet.WindowInfo.ScrollColumn = cellW1.Column

' Attach workbook *AFTER* doing the above.  For a variety of reasons I
' won't go into, attaching the worksheet before setting the above "window
' info" options may not have any effect.
WorkbookView1.ActiveWorksheet = Workbook_Obj.ActiveWorksheet
...