Безплатна .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 файлове без никаква външна зависимост.
Как да инсталирате 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.
- Създайте нова XSSFWorkbook
- Създайте подходящ XSSFSheet за всеки работен лист на XLS
- Копирайте данни от XLS работен лист в XLSX работен лист
- Копирайте форматирането от XLS работен лист в XLSX работен лист
- Запазете работна книга във формат 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();