1. Produkty
  2.   Arkusz
  3.   .NET
  4.   NPOI
 
  

Bezpłatna biblioteka .NET dla arkuszy kalkulacyjnych Excel®

Czytaj, pisz, manipuluj i konwertuj pliki XLS i XLSX za pośrednictwem biblioteki .NET o otwartym kodzie źródłowym.

Co to jest NPOI?

NPOI to wersja .NET projektu POI Java. Jest to biblioteka open source .NET do odczytu i zapisu plików w formatach Microsoft Excel. Przestrzeń nazw NPOI.HSSF umożliwia manipulowanie formatem pliku XLS, podczas gdy NPOI Przestrzeń nazw .XSSF umożliwia tworzenie i modyfikowanie plików 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 umożliwia dodawanie tekstu, wstawianie hiperłączy, tworzenie i stylizowanie komórek i kolumn, wstawianie obrazów i odczytywanie treści z istniejących plików XLS i XLSX bez żadnych zewnętrznych zależności.

Previous Next

Jak zainstalować NPOI?

Zainstaluj NPOI z NuGet

 Install-Package NPOI -Version 2.4.1

Manipuluj plikiem XLSX za pomocą C#

NPOI umożliwia programistom .NET tworzenie i modyfikowanie arkuszy kalkulacyjnych z ich własnych aplikacji .NET. Aby zmodyfikować istniejący plik, możesz go załadować i zaktualizować tekst, tabele, style i nie tylko.

Edytuj XLSX za pomocą 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();

Konwertuj XLS na XLSX za pomocą NPOI

Postępuj zgodnie z instrukcjami, aby zapisać plik XLS jako XLSX po otwarciu i zmodyfikowaniu go za pomocą NPOI.

  1. Utwórz nowy skoroszyt XSSF
  2. Utwórz odpowiedni arkusz XSSF dla każdego arkusza roboczego XLS
  3. Skopiuj dane z arkusza XLS do arkusza XLSX
  4. Skopiuj formatowanie z arkusza XLS do arkusza XLSX
  5. Zapisz skoroszyt w formacie XLSX

Konwertuj XLS na XLSX za pomocą 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);
}

Dodaj obraz do XLSX za pomocą C#

API umożliwia programistom dodawanie obrazów w dokumentach arkusza kalkulacyjnego. Możesz dodać obraz i ustawić właściwości obrazu. API pozwala na łatwe manipulowanie obrazami w formacie XLSX różnymi metodami. IClientAnchor umożliwia ustawienie górnej, dolnej, lewej i prawej pozycji obrazu w arkuszu.

Utwórz tabelę za pomocą 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();
 Polski