Bibliothèque .NET gratuite pour les feuilles de calcul Excel®
Lisez, écrivez, manipulez et convertissez des fichiers XLS et XLSX via la bibliothèque open-source .NET.
Qu'est-ce que le NPOI ?
NPOI est une version .NET du projet POI Java. Il s'agit d'une bibliothèque .NET open source pour lire et écrire les formats de fichiers Microsoft Excel. L'espace de noms NPOI.HSSF permet de manipuler le format de fichier XLS, tandis que NPOI L'espace de noms .XSSF vous permet de créer et de modifier des fichiers 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.
NPOI vous permet d'ajouter du texte, d'insérer des hyperliens, de créer et de styliser des cellules et des colonnes, d'insérer des images et de lire le contenu de fichiers XLS et XLSX existants sans aucune dépendance externe.
Comment installer NPOI ?
Installer NPOI à partir de NuGet
Install-Package NPOI -Version 2.4.1
Manipuler le fichier XLSX via C #
NPOI permet aux programmeurs .NET de créer et de modifier des feuilles de calcul à partir de leurs propres applications .NET. Pour modifier un fichier existant, vous pouvez charger le fichier et mettre à jour le texte, les tableaux, les styles, etc.
Modifier XLSX avec 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();
Convertir XLS en XLSX avec NPOI
Suivez les étapes pour enregistrer le fichier XLS en tant que XLSX après l'avoir ouvert et modifié à l'aide de NPOI.
- Créer un nouveau classeur XSSF
- Créer XSSFSheet approprié pour chaque feuille de calcul de XLS
- Copier les données de la feuille de calcul XLS vers la feuille de calcul XLSX
- Copier la mise en forme de la feuille de calcul XLS vers la feuille de calcul XLSX
- Enregistrer le classeur au format XLSX
Convertir XLS en XLSX avec 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);
}
Ajouter une image à XLSX via C #
L'API permet aux développeurs d'ajouter des images dans des feuilles de calcul. Vous pouvez ajouter une image et définir les propriétés de l'image. L'API permet à diverses méthodes de manipuler facilement des images au format de fichier XLSX. IClientAnchor vous permet de définir le positionnement haut, bas, gauche et droite de l'image dans la feuille de calcul.
Créer une table avec 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();