Biblioteca .NET gratuita para planilhas do Excel®

Leia, escreva, manipule e converta arquivos XLS e XLSX através da biblioteca .NET de código aberto.

O que é NPOI?

NPOI é uma versão .NET do projeto POI Java. É uma biblioteca .NET de código aberto para ler e gravar formatos de arquivo do Microsoft Excel. O namespace NPOI.HSSF fornece a capacidade de manipular o formato de arquivo XLS, enquanto o NPOI O namespace .XSSF permite que você crie e modifique arquivos XLSX.

NPOI is a .NET version of POI Java project. It is an open source .NET library to read and write Microsoft Excel file formats. NPOI.HSSF namespace provides the ability to manipulate XLS file format, while NPOI.XSSF namespace allows you to create & modify XLSX files.

NPOI is a .NET version of POI Java project. It is an open source .NET library to read and write Microsoft Excel file formats. NPOI.HSSF namespace provides the ability to manipulate XLS file format, while NPOI.XSSF namespace allows you to create & modify XLSX files.

O NPOI permite adicionar texto, inserir hiperlinks, criar e estilizar células e colunas, inserir imagens e ler conteúdo de arquivos XLS e XLSX existentes sem qualquer dependência externa.

Previous Next

Como instalar o NPOI?

Instale o NPOI do NuGet

 Install-Package NPOI -Version 2.4.1

Manipular arquivo XLSX via C#

O NPOI permite que os programadores .NET criem e modifiquem planilhas de seus próprios aplicativos .NET. Para modificar um arquivo existente, você pode carregar o arquivo e atualizar texto, tabelas, estilos e muito mais.

Editar XLSX com NPOI - C#

IWorkbook wb = new XSSFWorkbook();
// Create a Worksheet
ISheet ws = wb.CreateSheet("FileFormat");
ICellStyle style = wb.CreateCellStyle();
//Setting the line of the top border
style.BorderTop = BorderStyle.Thick;
style.TopBorderColor = 256;
style.BorderLeft = BorderStyle.Thick;
style.LeftBorderColor = 256;
style.BorderRight = BorderStyle.Thick;
style.RightBorderColor = 256;
style.BorderBottom = BorderStyle.Thick;
style.BottomBorderColor = 256;
IRow row = ws.CreateRow(0);
ICell cell = row.CreateCell(1);
cell.CellStyle = style;
FileStream sw = File.Create("fileformat.xlsx");
wb.Write(sw);
sw.Close();

Converter XLS para XLSX com NPOI

Siga as etapas para salvar o arquivo XLS como XLSX depois de abri-lo e modificá-lo usando NPOI.

  1. Criar nova pasta de trabalho XSSF
  2. Crie XSSFSheet apropriado para cada planilha de XLS
  3. Copiar dados da planilha XLS para a planilha XLSX
  4. Copie a formatação da planilha XLS para a planilha XLSX
  5. Salvar pasta de trabalho no formato XLSX

Converter XLS para XLSX com NPOI - C#

HSSFWorkbook retVal = new HSSFWorkbook();
for (int i = 0; i < source.NumberOfSheets; i++)
{
	HSSFSheet hssfSheet = (HSSFSheet)retVal.CreateSheet(source.GetSheetAt(i).SheetName);
	XSSFSheet xssfsheet = (XSSFSheet)source.GetSheetAt(i);
	CopySheets(xssfsheet, hssfSheet, retVal);
}

Adicionar imagem ao XLSX via C#

A API permite que os desenvolvedores adicionem imagens em documentos de planilha. Você pode adicionar uma imagem e definir as propriedades da imagem. A API permite vários métodos para manipular imagens no formato de arquivo XLSX facilmente. IClientAnchor permite definir o posicionamento superior, inferior, esquerdo e direito da imagem dentro da planilha.

Criar tabela com XSSF NPOI - C#

IWorkbook wb = new XSSFWorkbook();
ISheet sheet1 = wb.CreateSheet("First Sheet");
// Add picture data to this workbook.
byte[] bytes = File.ReadAllBytes("fileformat.png");
int pictureIdx = wb.AddPicture(bytes, PictureType.PNG);
ICreationHelper helper = wb.GetCreationHelper();
// Create the drawing patriarch. This is the top level container for all shapes.
IDrawing drawing = sheet1.CreateDrawingPatriarch();
// add a picture shape
IClientAnchor anchor = helper.CreateClientAnchor();
// set top-left corner of the picture,
// subsequent call of Picture#resize() will operate relative to it
anchor.Col1 = 3;
anchor.Row1 = 2;
IPicture pict = drawing.CreatePicture(anchor, pictureIdx);
// auto-size picture relative to its top-left corner
pict.Resize();
FileStream sw = File.Create("image.xlsx");
wb.Write(sw);
sw.Close();
 Português