English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método de criação de agrupamento multi-nível no Excel no C#

Se, no Excel, for possível agrupar dados com detalhes de vários níveis e exibi-los, será possível mostrar claramente a estrutura do gráfico de dados, conferindo ao documento uma sensação de hierarquia. De acordo com a necessidade, configure a exibição ou ocultação dos detalhes das categorias, facilitando a visualização e gestão dos dados ao mesmo tempo que o documento ganha mais beleza. Então, como criar uma exibição de agrupamento de dados de Excel de vários níveis em C#? A seguir será detalhado. O método usa o componente gratuitoFree Spire.XLS for .NETBaixe e instale o componente, crie um aplicativo de console e adicione o arquivo dll do pacote de instalação do componente ao projeto, adicione também o espaço de nomes correspondente. A seguir estão os passos específicos do código para referência.

Passo um:Criar um objeto do tipo Wordbook e obter a primeira planilha

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

Passo dois:Escrever dados na célula

sheet.Range["A1"].Value = "Departamentos da empresa";
sheet.Range["A3"].Value = "Departamento geral";
sheet.Range["A4"].Value = "Administrativo";
sheet.Range["A5"].Value = "Pessoal";
sheet.Range["A6"].Value = "Departamento de marketing";
sheet.Range["A7"].Value = "Departamento de negócios";
sheet.Range["A8"].Value = "Departamento de atendimento ao cliente";
sheet.Range["A9"].Value = "Departamento técnico";
sheet.Range["A10"].Value = "Desenvolvimento técnico";
sheet.Range["A11"].Value = "Suporte técnico";
sheet.Range["A12"].Value = "Suporte pré-venda";
sheet.Range["A13"].Value = "Suporte pós-venda";

Passo três:Definir a propriedade IsSummaryRowBelow como false, mostrando a linha de resumo acima das linhas de detalhe

sheet.PageSetup.IsSummaryRowBelow = false;

Passo quatro:Selecionar a linha para agrupar, o parâmetro false indica expandir o grupo atual, para ocultar, configure como true

//Escolher linhas para agrupamento de um nível
sheet.GroupByRows(2, 13, false);
//Escolher linhas para agrupamento de dois níveis
sheet.GroupByRows(4,5 , false);
sheet.GroupByRows(7, 8, false);
sheet.GroupByRows(10,13 , false);
//Escolher linhas para agrupamento de três níveis
sheet.GroupByRows(12,13, true);

Passo cinco:Definir um objeto CellStyle, aplicar e usar o formato para a fonte dentro da célula

CellStyle style = workbook.Styles.Add("style");
style.Font.IsBold = true;
style.Color = Color.LawnGreen;
sheet.Range["A1"]').CellStyleName = style.Name;
sheet.Range["A3"]').CellStyleName = style.Name;
sheet.Range["A6"]').CellStyleName = style.Name;
sheet.Range["A9"]').CellStyleName = style.Name;

Passo seis:Definir estilo de borda da área

sheet.Range["A4:A5"]').BorderAround(LineStyleType.Thin);
sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
sheet.Range["A7:A8"]').BorderAround(LineStyleType.Thin);
sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
sheet.Range["A10:A13"]').BorderAround(LineStyleType.Thin);
sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);

Passo sete:Salvar documento

workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);

Executar o programa para gerar o documento (pode ser verificado na pasta bin>Debug do projeto)

Exibição de efeitos:

Todo o código:

using System;
using System.Drawing;
using Spire.Xls;
namespace MultilevelGroup_XLS
{
 class Program
 {
  static void Main(string[] args)
  {
   //Criar um objeto do tipo Wordbook e obter a primeira planilha
   Workbook workbook = new Workbook();
   Worksheet sheet = workbook.Worksheets[0];
   //Escrever dados na célula
   sheet.Range["A1"].Value = "Departamentos da empresa";
   sheet.Range["A3"].Value = "Departamento geral";
   sheet.Range["A4"].Value = "Administrativo";
   sheet.Range["A5"].Value = "Pessoal";
   sheet.Range["A6"].Value = "Departamento de marketing";
   sheet.Range["A7"].Value = "Departamento de negócios";
   sheet.Range["A8"].Value = "Departamento de atendimento ao cliente";
   sheet.Range["A9"].Value = "Departamento técnico";
   sheet.Range["A10"].Value = "Desenvolvimento técnico";
   sheet.Range["A11"].Value = "Suporte técnico";
   sheet.Range["A12"].Value = "Suporte pré-venda";
   sheet.Range["A13"].Value = "Suporte pós-venda";
   //Definir IsSummaryRowBelow como false, mostrando a linha de resumo acima das linhas de detalhe
   sheet.PageSetup.IsSummaryRowBelow = false;
   //Escolher linhas para agrupamento de um nível
   //O parâmetro false indica expandir o agrupamento atual, se desejar ocultar, configure como true
   sheet.GroupByRows(2, 13, false);
   //Escolher linhas para agrupamento de dois níveis
   sheet.GroupByRows(4,5 , false);
   sheet.GroupByRows(7, 8, false);
   sheet.GroupByRows(10,13 , false);
   //Escolher linhas para agrupamento de três níveis
   sheet.GroupByRows(12,13, true);
   //Definir um objeto CellStyle, ajustar e aplicar o formato de fonte dentro da célula
   CellStyle style = workbook.Styles.Add("style");
   style.Font.IsBold = true;
   style.Color = Color.LawnGreen;
   sheet.Range["A1"]').CellStyleName = style.Name;
   sheet.Range["A3"]').CellStyleName = style.Name;
   sheet.Range["A6"]').CellStyleName = style.Name;
   sheet.Range["A9"]').CellStyleName = style.Name;
   //Definir estilo de borda da área
   sheet.Range["A4:A5"]').BorderAround(LineStyleType.Thin);
   sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
   sheet.Range["A7:A8"]').BorderAround(LineStyleType.Thin);
   sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
   sheet.Range["A10:A13"]').BorderAround(LineStyleType.Thin);
   sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);
   //Salvar documento
   workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);
   System.Diagnostics.Process.Start("output.xlsx");
  }
 }
}

Aqui estão todos os passos de configuração para o agrupamento multi-nível do Excel.

Isso é tudo o que há no artigo, esperamos que ajude na aprendizagem de todos e que todos apoiem o tutorial de gritaria.

Declaração: O conteúdo deste artigo é extraído da Internet, pertence ao autor original, foi contribuído e carregado voluntariamente pelos usuários da Internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade por eventuais responsabilidades legais. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Aparentemente, o site deletará o conteúdo suspeito de violação de direitos autorais imediatamente.

Você também pode gostar