Pastear Gridview a Hoja De Calculos (Gambas)
Publicado: 27 Sep 2010, 15:19
Las hojas de cálculo utilizan para separar una celda de otra el carácter TAB que en gambas se corresponde con gb.tab chr(9)
En microsoft para separar unas filas de otras se utiliza CRLF que corresponde a gb.tab + key.enter.
En Unix/Linux para separar unas filas de otras se utiliza LF que corresponde a gb.newline chr(10)
Adaptar esta rutina a nuestro caso según necesitemos.
Doy por creado un gridview al que llamaré gd
Creo un botón al que le asigno este código:
Inicializar valores:
Copiar el encabezado horizontal del GD:
Copiar Datos:
Luego todo queda almacenado en un string llamado grid que se envia al porta papeles:
En microsoft para separar unas filas de otras se utiliza CRLF que corresponde a gb.tab + key.enter.
En Unix/Linux para separar unas filas de otras se utiliza LF que corresponde a gb.newline chr(10)
Adaptar esta rutina a nuestro caso según necesitemos.
Doy por creado un gridview al que llamaré gd
Creo un botón al que le asigno este código:
Código: Seleccionar todo
Sub Boton_click()
'declarar variables
DIM Grid AS String, fila AS Integer, Columna AS Integer
DIM, MaxFilas AS Integer, MaxColumnas AS Integer
Código: Seleccionar todo
MaxColumnas = gd.columns.count - 1 '---> número de columnas de gd
Maxfilas = gd.Rows.count - 1 '---> número de filas de gd
Copiar el encabezado horizontal del GD:
Código: Seleccionar todo
FOR columna = 0 TO MaxColumnas '---> para cada columna
Grid &= gd.Columns[columna].text '---> poner el encabezado de columna
IF columna < MaxColumnas THEN
Grid &= gb.Tab '---> añadir un TAB si no es la última columna
ELSE
Grid &= gb.NewLine '---> añadir un LF si es la última columna
ENDIF
NEXT
Código: Seleccionar todo
FOR fila = 0 TO Maxfilas '---> para cada fila
FOR columna = 0 TO MaxColumnas '---> para cada columna
grid &= gd[fila, columna].Text ' copiar el valor de la celda
IF columna < MaxColumnas THEN
Grid &= gb.Tab '---> añadir un TAB si no es la última columna
ELSE
Grid &= gb.NewLine '---> añadir un LF si es la última columna
ENDIF
NEXT
NEXT
Código: Seleccionar todo
'Pasar el resultado al portapapeles
Clipboard.Copy(Grid)
end