Безкоштовна бібліотека .NET для електронних таблиць Excel®

Читайте, записуйте, маніпулюйте та конвертуйте файли XLS і XLSX за допомогою бібліотеки .NET з відкритим кодом.

Що таке NPOI?

NPOI — це .NET-версія проекту POI Java. Це бібліотека .NET з відкритим кодом для читання та запису форматів файлів Microsoft Excel. Простір імен NPOI.HSSF надає можливість маніпулювати форматом файлу XLS, а NPOI Простір імен .XSSF дозволяє створювати та змінювати файли 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 дозволяє додавати текст, вставляти гіперпосилання, створювати та стилізувати комірки та стовпці, вставляти зображення та читати вміст із наявних файлів XLS та XLSX без будь-яких зовнішніх залежностей.

Previous Next

Як встановити NPOI?

Встановіть NPOI з NuGet

 Install-Package NPOI -Version 2.4.1

Маніпулювання файлом XLSX через C#

NPOI дозволяє програмістам .NET створювати, а також змінювати електронні таблиці з власних програм .NET. Щоб змінити існуючий файл, ви можете завантажити файл і оновити текст, таблиці, стилі тощо.

Редагувати XLSX за допомогою 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();

Перетворення XLS на XLSX за допомогою NPOI

Виконайте кроки, щоб зберегти файл XLS як XLSX після того, як ви його відкрили та змінили за допомогою NPOI.

  1. Створіть нову робочу книгу XSSF
  2. Створіть відповідний XSSFSheet для кожного аркуша XLS
  3. Скопіюйте дані з аркуша XLS на аркуш XLSX
  4. Скопіюйте форматування з аркуша XLS на аркуш XLSX
  5. Збережіть книгу у форматі XLSX

Перетворення XLS на XLSX за допомогою 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);
}

Додати зображення до XLSX через C#

API дозволяє розробникам додавати зображення в документи електронних таблиць. Ви можете додати зображення та встановити властивості зображення. API дозволяє різними методами легко маніпулювати зображеннями у форматі файлу XLSX. IClientAnchor дозволяє встановити верхнє, нижнє, ліворуч і праве розташування зображення всередині аркуша.

Створення таблиці за допомогою 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();
 Українська