Бесплатная библиотека .NET для электронных таблиц Excel®

Читайте, записывайте, управляйте и конвертируйте файлы XLS и XLSX с помощью библиотеки .NET с открытым исходным кодом.

Что такое НПОИ?

NPOI — это .NET-версия Java-проекта POI. Это библиотека .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. Создать новую книгу XSSFWorkbook
  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();
 Русский