Limite el número de filas y columnas en OpenOffice Calc

1

¿Hay alguna forma de limitar el número de filas y columnas que se muestran en una hoja en OpenOffice Calc?

He recurrido a ocultar manualmente filas y columnas fuera del área que quiero, pero esto es tedioso y se restablece cuando utilizo el Autofiltro.

Tenga en cuenta que estoy buscando una configuración por hoja, no una configuración por usuario o por instalación.

En Excel, parece haber una forma indirecta de hacer esto, pero no he podido encontrar un equivalente de OpenOffice: http://spreadsheets.about.com/od/excelformulas/ss/2011-05-14- excel-2010-limit-rows-tutorial.htm

dovetalk
fuente

Respuestas:

1

De las diversas soluciones disponibles, para mí parece que es mejor ocultar las filas y columnas. Aquí hay una subrutina que lo hará automáticamente:

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

Por ejemplo, se podría llamar a la siguiente rutina cuando se abre el documento ( Tools -> Customize -> Events):

Sub DoHideRowsAndCols
    HideRowsAndColumns(20,10)
End Sub

En LibreOffice, AutoFilterno mostró las filas. Sin embargo, lo hizo en Apache OpenOffice. Entonces, para AOO, la rutina necesitaría ser llamada nuevamente después de hacer un AutoFilter.

Otra alternativa es que, en lugar de ocultar las celdas, protéjalas para evitar su edición. Ver https://ask.libreoffice.org/en/question/17106/is-it-possible-to-impose-a-limit-columns-and-rows-on-spreadsheet-size/ .

Es posible agregar un controlador de eventos para evitar desplazarse más allá de ciertas filas. Para ver un ejemplo de un controlador de eventos de hoja de cálculo, consulte https://stackoverflow.com/questions/35240690/how-to-scroll-all-libreoffice-calc-spreadsheet-sheets-together-or-other-3d-li/35244220# 35244220 .

Sin embargo, creo que agregar un controlador de este tipo sería muy irritante para el usuario. Intentarían hacer clic en una celda solo para que no pasara nada, o tal vez la vista volvería repentinamente a la vista original.

Jim K
fuente
¿Cómo ejecuta este script manualmente?
Melab
Agregue el código usando Herramientas -> Macros -> Organizar macros -> LibreOffice Basic . Luego vaya a Herramientas -> Macros -> Ejecutar macro y busque DoHideRowsAndCols.
Jim K