Este tutorial foi retirado do site Debugpoint, não mudei nada nenhuma linha de comando, apenas traduzir a explicação do tutorial e espero que ajudem a todos.
Em muitas tarefas de automação é preciso acessar planilha usando o intervalo para reduzir o tempo de processamento. Pode-se acessar cada células usando "linha, coluna" caminho que é caro em termos de tempo de processamento e complexidade. Assim, é algumas vezes preferida Gama no topo do processamento de célula individual.
Em muitas tarefas de automação é preciso acessar planilha usando o intervalo para reduzir o tempo de processamento. Pode-se acessar cada células usando "linha, coluna" caminho que é caro em termos de tempo de processamento e complexidade. Assim, é algumas vezes preferida Gama no topo do processamento de célula individual.
Neste duas partes série tutorial vou falar sobre como processar "Range" no LibreOffice aplicativo de planilha (LO) Calc.
Parte 1 consiste em escrever em intervalos na planilha.
Definir um intervalo
A gama é tipicamente definido usando "start_cell_address: stop_cell_address". No Calc todas as colunas são identificadas utilizando letras "A", "B", "C", .... e todas as linhas são números a partir de 1 e assim por diante.
Assim, um intervalo típico - "A1: D5" refere-se todas as células a partir de (1,1) para (4,5). Veja abaixo:
A Faixa de simples |
Criar um Macro:
Criar uma nova macro no LibreOffice Calc. Adicione uma função dizer rang_processing_demo () com linhas abaixo que proporcionem um porão da planilha antes de começarmos a gama de processamento.
Se você precisar de orientação sobre como criar uma macro básica - clique aqui.
Sub range_processing_demo
dim my_doc as object
Dim my_sheets as object
Dim my_range as object
my_doc = ThisComponent
my_sheets = my_doc.Sheets
End Sub
dim my_doc as object
Dim my_sheets as object
Dim my_range as object
my_doc = ThisComponent
my_sheets = my_doc.Sheets
End Sub
Vamos começar com uma única célula encher-se através de um alcance, em seguida, vá para o processamento gama mais complexa.
Defina uma única célula usando faixa
Ranges pode ser definido com um setDataArray função (array). O argumento desta função é uma matriz 2D do mesmo tamanho do intervalo.
Se você escolher um intervalo "A1", que nada mais é que uma única célula, a matriz correcponsing deve ter apenas valor. Assim, definir uma matriz com um elemento e defina seu valor.
Dim my_data(0,0)
my_data(0,0) = "Apple"
my_data(0,0) = "Apple"
Agora, definir um intervalo de ie 1 célula "A1" e colocar a matriz definida dentro setDataArray function ().
my_range = ThisComponent.Sheets(0).getCellRangebyName("A1")
my_range.setDataArray(my_data)
my_range.setDataArray(my_data)
Se você executar os conjuntos de código acima, o resultado seria:
Preenchimento de uma única célula usando Gama |
Defina uma fileira de células usando gama
Agora, começa com mais processamento gama complexa. Nós queremos encher uma fileira de células usando intervalo. Queremos preencher as células de A3 para C3. Para isso, precisamos definir uma matriz com (0,2), onde 0 = linha e 2 = coluna. Note-se que as colunas começa com 0, assim, 0-2 é de 3 colunas que queremos preencher.
' Set a row of cells using range
ReDim my_data(0,2)
my_data(0,0) = "Apple"
my_data(0,1) = "1000"
my_data(0,2) = "Red"
my_range = ThisComponent.Sheets(0).getCellRangebyName("A3:C3")
my_range.setDataArray(my_data)
ReDim my_data(0,2)
my_data(0,0) = "Apple"
my_data(0,1) = "1000"
my_data(0,2) = "Red"
my_range = ThisComponent.Sheets(0).getCellRangebyName("A3:C3")
my_range.setDataArray(my_data)
O resultado do código acima:
Preencha Linhas Usando Gama |
Ajuste colunas de células usando gama
No lado oposto, queremos preencher uma única coluna com várias linhas. Definir uma matriz com (2,0) e tenho esse código no lugar.
' Set a column of cells using range
ReDim my_data(2,0)
my_data(0,0) = "Apple"
my_data(1,0) = "1000"
my_data(2,0) = "Red"
my_range = ThisComponent.Sheets(0).getCellRangebyName("C1:C3")
my_range.setDataArray(my_data)
O Resultado:
Preencha colunas usando Gama |
Defina uma linha e coluna de células do mesmo tamanho usando gama
Vamos encher as duas faixas de linha e coluna usando mesmo tamanho. Semelhante ao exemplos acima, definir uma matriz com o tamanho (2,2).
' Set row and column of same size using range
ReDim my_data(2,2)
my_data(0,0) = "Apple"
my_data(0,1) = "1000"
my_data(0,2) = "Red"
my_data(1,0) = "Apple-1"
my_data(1,1) = "1000-1"
my_data(1,2) = "Red-1"
my_data(2,0) = "Apple-2"
my_data(2,1) = "1000-2"
my_data(2,2) = "Red-2"
my_range = ThisComponent.Sheets(0).getCellRangebyName("B2:D4")
my_range.setDataArray(my_data)
Saída:
Preencha linhas e colunas de mesmo tamanho de uma animação |
Defina uma linha e coluna de células de diferentes tamanhos usando gama
Para preencher a faixa de tamanho diferente de coluna e linha, definir uma matriz de tamanho diferente.
' Set row and column of different size using range
ReDim my_data(3,1)
my_data(0,0) = "Apple"
my_data(0,1) = "1000"
my_data(1,0) = "Apple-1"
my_data(1,1) = "1000-1"
my_data(2,0) = "Apple-2"
my_data(2,1) = "1000-2"
my_data(3,0) = "Apple-3"
my_data(3,1) = "1000-3"
my_range = ThisComponent.Sheets(0).getCellRangebyName("B2:C5")
my_range.setDataArray(my_data)
ReDim my_data(3,1)
my_data(0,0) = "Apple"
my_data(0,1) = "1000"
my_data(1,0) = "Apple-1"
my_data(1,1) = "1000-1"
my_data(2,0) = "Apple-2"
my_data(2,1) = "1000-2"
my_data(3,0) = "Apple-3"
my_data(3,1) = "1000-3"
my_range = ThisComponent.Sheets(0).getCellRangebyName("B2:C5")
my_range.setDataArray(my_data)
Saída:
Preencha linhas e colunas de diferentes tamanhos usando Gama |
Conclusão:
Defina o tamanho matriz usando (linha, col) e usar a função setDataArray () para Fillout o intervalo usando macro básico.
Fonte: DebugPoint
Comentários
Postar um comentário