Existem algumas maneiras de especificar que um gráfico deve ser exibido em uma nova planilha na pasta de trabalho atual, dependendo de como você está criando o gráfico (por exemplo, manualmente no Excel, usando o código VBA ou através de uma biblioteca como Pandas no Python). Vou cobrir os métodos comuns:
1. Manualmente no Excel (GUI) * Este é o mais simples, se você estiver trabalhando diretamente dentro do aplicativo Excel.
1.
Crie o gráfico: Selecione os dados que você deseja gráficos. Vá para a guia "Inserir" e escolha o tipo de gráfico desejado (por exemplo, coluna, torta, linha). O gráfico aparecerá inicialmente incorporado na folha atual.
2.
Mova o gráfico para a nova folha: *
Método 1 (clique com o botão direito do mouse): Clique com o botão direito do mouse na área do gráfico. Escolha "Mover Gráfico ...".
*
Método 2 (guia de design do gráfico): Selecione o gráfico. A guia "Design de gráfico" aparecerá na fita. Clique no botão "Mover gráfico" (geralmente localizado no lado direito).
3.
Mover Caixa de gráfico: Na caixa de diálogo "Mover gráfico", selecione "Nova folha:" e opcionalmente, dê um nome à folha. Clique em "OK".
2. VBA (Visual Basic for Applications) * Este método é usado quando você deseja automatizar a criação e a colocação do gráfico usando o código VBA na sua pasta de trabalho do Excel.
`` `VBA
Sub CreateChartonewsheet ()
Dim cht como gráfico
Dim RNG como alcance
Dim Newsht como planilha
'Defina o intervalo de dados
Definir rng =thisworkbook.sheets ("Sheet1"). Range ("A1:B10") 'Ajuste o nome da folha e o alcance da folha e
'Crie uma nova planilha para manter o gráfico
Definir newsht =thisworkbook.sheets.add (depois:=thisworkbook.sheets (thisworkbook.sheets.count)) 'adiciona uma folha no final
'Alternativamente, adicione a folha no início:
'Definir newsht =thisworkbook.sheets.add (antes:=thisworkbook.sheets (1))
'Crie o gráfico na nova folha
Definir cht =cartas.add
Com cht
.ChartType =XlColumnClustered 'Tipo de gráfico de ajuste
.SetSourCedata Fonte:=rng
.Location where:=xllocationAsnewsheet, nome:=newsht.name 'Defina o local
.Haslegend =True 'Exemplo:Inclua uma lenda
.Charttitle.Text ="meu título do gráfico" 'Exemplo:Defina o título
'Opções adicionais de personalização do gráfico podem ser adicionadas aqui
Termine com
'Opcional:renomeie a nova folha (já feita acima por meio de localização)
'Newsht.name ="MyChartSheet"
'Opcional:Ative a folha de gráficos
Newsht.Activate
'Limpe as variáveis de objetos
Defina cht =nada
Definir rng =nada
Definir newsht =nada
Final sub
`` `
*
Explicação: * `Dim cht como gráfico`:declara uma variável para manter o objeto do gráfico.
* `DIM RNG AS RANGE`:declara uma variável para manter o intervalo de dados.
* `Dim Newsht como planilha ':declara uma variável para manter a nova planilha.
* `Set rng =thisworkbook.sheets (" Sheet1 "). Range (" A1:B10 ")`:define o intervalo de dados a ser usado para o gráfico.
IMPORTANTE:Alterar `" Sheet1 "` `e` "A1:B10" `para o seu nome real e intervalo de dados. * `Definir newsht =thisworkbook.sheets.add (depois:=thisworkbook.sheets (thisworkbook.sheets.count))`:adiciona uma nova planilha * após * a última folha na pasta de trabalho. Você pode usar `antes:=thisworkbook.sheets (1)` Para adicioná -lo como a * First *.
* `Definir cht =gráficos.add`:cria um novo objeto de gráfico. Isso é chave. `Charts.add` cria um gráfico na coleção * ChartObjects *.
* `.ChartType =xlcolumnClustered`:define o tipo de gráfico. Use a constante `xlChartType` apropriada (por exemplo,` xlline`, `xlpie`,` xlbarclustered`).
* `.SetSourCedata Fonte:=rng`:define a fonte de dados para o gráfico.
* `.Location where:=xllocationAsnewsheet, nome:=newsht.name`:esta é a linha crucial. Ele move o gráfico para uma nova folha.
* `Onde:=xllocationAsnewsheet`:especifica que o gráfico deve ser colocado em uma nova folha.
* `Nome:=Newsht.name`:define o nome da nova folha para o nome do gráfico.
*
Considerações importantes para VBA: *
Manuseio de erro: Adicione o manuseio de erros (por exemplo, `On Error Goto ErrorHandler`) para tornar seu código mais robusto. O que acontece se a folha especificada não existir ou o intervalo for inválido?
*
Variáveis de objeto: Sempre limpe suas variáveis de objeto, configurando -as como `nada` (como mostrado) para liberar a memória.
*
personalização do gráfico: O `.Charttitle.Text`,` .haslegend`, etc. As linhas são apenas exemplos. O VBA oferece opções extensas para personalizar todos os aspectos de um gráfico (eixos, rótulos, formatação em série, etc.). Explore o modelo de objeto do Excel VBA para gráficos.
*
Segurança: Se a sua pasta de trabalho contiver código VBA, provavelmente precisará ser salvo como uma pasta de trabalho com macro (`.xlsm`). Os usuários também precisarão ativar o Macros no Excel.
3. Python com pandas e openpyxl (ou xlsxwriter) * Isso é usado quando você está trabalhando com dados no Python e deseja criar gráficos do Excel.
`` `Python
importar pandas como PD
Importar OpenPyxl
da pasta de trabalho OpenPyXL de importação
De OpenPyxl.Chart Importar Barchart, Referência, Série
# Crie alguns dados de amostra
dados ={'categoria':['a', 'b', 'c', 'd'],
'Valor':[10, 15, 13, 18]}
df =pd.dataframe (dados)
# Crie um escritor do Pandas Excel usando o OpenPyxl como o motor
writer =pd.excelwriter ("Chart_example.xlsx", mecanismo ='OpenPyxl')
# Escreva o DataFrame para uma folha chamada 'Data'
df.to_excel (writer, chaphe_name ='dados', index =false)
# Obtenha os objetos da pasta de trabalho e da planilha
pasta de trabalho =writer.book
planilha =writer.sheets ['dados']
# Crie um barcart
Chart =Barchart ()
Chart.Type ="Col"
Chart.style =10
Chart.title ="Vendas por categoria"
Chart.y_axis.title ='valor'
Chart.x_axis.title ='categoria'
# Defina o intervalo de dados (excluindo a linha do cabeçalho)
data_range =referência (planilha, min_col =2, min_row =2, max_col =2, max_row =len (dados ['category']) + 1) #column b (valores), cabeceamento de skip
categorias =referência (planilha, min_col =1, min_row =2, max_col =1, max_row =len (dados ['category']) + 1) #column a (categorias), salto de salto
# Adicione a série de dados ao gráfico
série =série (data_range, title_from_data =false) #use .title ="" para definir manualmente o título
Chart.Append (série)
Chart.set_categories (categorias)
# Crie uma nova planilha para o gráfico
Chart_sheet =Work.Create_Sheet ("Chart")
# Adicione o gráfico à nova folha
Chart_sheet.add_Chart (Chart, "A1") # Ajuste a posição da célula conforme necessário
# Salvar o arquivo do Excel
writer.close ()
print ("Arquivo Excel 'Chart_example.xlsx' criado com o gráfico em uma nova folha.")
`` `
*
Explicação: 1.
Importar bibliotecas: Importar `pandas`,` OpenPyxl` e os módulos necessários de `OpenPyxl.Chart`. Certifique -se de ter essas bibliotecas instaladas (`PIP Install Pandas OpenPyxl`).
2.
Criar dados (pandas): Crie seus dados usando o Pandas DataFrames.
3.
Criar escritor do Excel: Crie um objeto `pd.excelwriter`, especificando` OpenPyxl 'como o mecanismo. Isso permite que você use a funcionalidade `OpenPyxl` para criar o gráfico.
4.
Escreva dados na folha: Escreva o quadro de dados em uma folha no arquivo do Excel.
5.
Obtenha a pasta de trabalho e objetos de planilha: Acesse os objetos `de trabalho 'e` worksheet' do `Excelwriter`.
6.
Criar gráfico: Crie um objeto de gráfico (por exemplo, `barchart`).
7.
Definir intervalos de dados (referência): Use objetos `OpenPyxl.Chart.Reference` para definir o intervalo de dados para o gráfico. Preste atenção cuidadosa ao `min_col`,` min_row`, `max_col` e` parâmetros max_row`.
8.
Criar séries: Crie um objeto `Series` a partir do intervalo de dados. O `série` representa os pontos de dados a serem plotados.
9.
Anexar séries ao gráfico: Adicione o `série` ao gráfico`
10.
Defina categorias Defina as categorias
11.
Crie uma nova folha: Crie uma nova planilha para o gráfico usando `Work.Create_Sheet (" Chart ")`. O nome da nova folha é "Gráfico".
12.
Adicione gráfico à folha: Use `Chart_Sheet.add_Chart (Chart," A1 ")` para adicionar o gráfico à nova planilha. O argumento `A1" `especifica a célula superior esquerda onde o gráfico será colocado. Ajuste isso conforme necessário.
13.
Salvar pasta de trabalho: Salve o arquivo do Excel usando `writer.close ()`.
*
Pontos -chave para Python: *
Bibliotecas: Você deve * instalar as bibliotecas necessárias:`pip instalar pandas openpyxl` (ou` pip instalar xlsxwriter` se você escolher esse mecanismo).
*
OpenPyxl vs. xlsxwriter: * `OpenPyxl`:pode ler e escrever arquivos do Excel existentes. Mais flexível para formatação complexa.
* `Xlsxwriter`:Excelente para criar * novos arquivos do Excel, especialmente os grandes. Muitas vezes, mais rápido que o `OpenPyxl` para escrever. No entanto, ele não pode modificar os arquivos existentes. A principal diferença para esse problema é que o `xlsxwriter` pode criar apenas gráficos na planilha onde está os dados.
*
intervalos de dados: Os objetos `reference` são cruciais. Verifique se os valores `min_col`,` min_row`, `max_col` e` max_row` estão corretos para os seus dados. Lembre-se de que as colunas e linhas do Excel são baseadas em 1, não baseadas em 0, como listas Python.
*
personalização do gráfico: `OpenPyxl` e` xlsxwriter` têm opções extensas para personalizar gráficos (títulos, eixos, cores, rótulos, etc.). Consulte sua documentação.
em resumo: * Se você está fazendo isso manualmente no Excel, a caixa de diálogo "Move Chart" é a mais fácil.
* Se você está automatizando com o VBA, a propriedade `.location` é fundamental.
* Se você estiver usando o Python, `OpenPyxl` e` xlsxwriter` exige mais código, mas ofereça poderosas opções de personalização de gráficos. `OpenPyxl` é necessário ao modificar um arquivo Excel existente.
Escolha o método que melhor atenda às suas necessidades e ao ambiente em que você está trabalhando. Certifique -se de ajustar os exemplos de código para corresponder aos seus dados específicos, nomes de folhas e tipo de gráfico desejado. Lembre -se de instalar as bibliotecas necessárias se estiver usando o Python.