Ограничение количества строк и столбцов в OpenOffice Calc

есть ли способ ограничить количество строк и столбцов, отображаемых на листе в OpenOffice Calc?

я прибегал к ручному скрытию строк и столбцов за пределами области, которую я хочу, но это утомительно и сбрасывается при использовании Автофильтра.

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

в Excel, кажется, есть очень окольный способ сделать это, но я не смог найти OpenOffice эквивалент: http://spreadsheets.about.com/od/excelformulas/ss/2011-05-14-excel-2010-limit-rows-tutorial.htm

21
задан dovetalk
01.12.2022 22:24 Количество просмотров материала 2741
Распечатать страницу

1 ответ

из различных доступных обходных путей, мне кажется, что лучше всего скрывать строки и столбцы. Вот подпрограмма, которая сделает это автоматически:

Sub HideRowsAndColumns(iLastVisibleRow As Integer, iLastVisibleCol As Integer)
    oController = ThisComponent.CurrentController
    oSheet = oController.ActiveSheet
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    oCellRange = oSheet.getCellRangeByPosition(_
        0, iLastVisibleRow, 0, oSheet.Rows.Count - 1)
    oController.select(oCellRange)
    dispatcher.executeDispatch(document, ".uno:HideRow", "", 0, Array())
    oCellRange = oSheet.getCellRangeByPosition(_
        iLastVisibleCol, 0, oSheet.Columns.Count - 1, 0)
    oController.select(oCellRange)
    dispatcher.executeDispatch(document, ".uno:HideColumn", "", 0, Array())
    oCellRange = oSheet.getCellRangeByPosition(0, 0, 0, 0)
    oController.select(oCellrange)
End Sub

например, следующая процедура может быть вызвана при открытии документа (Tools -> Customize -> Events):

Sub DoHideRowsAndCols
    HideRowsAndColumns(20,10)
End Sub

В LibreOffice, AutoFilter строки не отображаются. Однако он сделал в Apache OpenOffice. Таким образом, для AOO, процедура должна быть вызвана снова после выполнения AutoFilter.

другой альтернативой является то, что вместо того, чтобы скрывать ячейки, защитите их, чтобы предотвратить редактирование. См https://ask.libreoffice.org/en/question/17106/is-it-possible-to-impose-a-limit-columns-and-rows-on-spreadsheet-size/.

можно добавить обработчик событий для предотвращения прокрутки за пределы определенных строк. Пример таблицы обработчиков событий см. https://stackoverflow.com/questions/35240690/how-to-scroll-all-libreoffice-calc-spreadsheet-sheets-together-or-other-3d-li/35244220#35244220.

однако я думаю, что добавление такого обработчика будет очень раздражать пользователя. Они попытаются нажать на ячейку, чтобы ничего не произошло, или, возможно, представление внезапно вернется к исходному виду.

1
отвечен Jim K 2022-12-03 06:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх