Excel® スプレッドシート用の無料の .NET ライブラリ
オープンソースの .NET ライブラリを介して、XLS および XLSX ファイルの読み取り、書き込み、操作、および変換を行います。
NPOIとは?
NPOI は、POI Java プロジェクトの .NET バージョンです。これは、Microsoft Excel ファイル形式を読み書きするためのオープン ソースの .NET ライブラリです。 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 のインストール方法
NuGet から NPOI をインストールする
Install-Package NPOI -Version 2.4.1
C# 経由で XLSX ファイルを操作する
NPOI を使用すると、.NET プログラマーは独自の .NET アプリケーションからスプレッドシートを作成および変更できます。既存のファイルを変更するために、ファイルをロードして、テキスト、表、スタイルなどを更新できます。
NPOI で XLSX を編集する - 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();
NPOI を使用して XLS を XLSX に変換する
NPOI を使用して XLS ファイルを開いて変更した後、XLS ファイルを XLSX として保存するには、次の手順に従います。
- 新しい XSSFWorkbook を作成する
- XLS のワークシートごとに適切な XSSFSheet を作成する
- XLS ワークシートから XLSX ワークシートにデータをコピーする
- XLS ワークシートから XLSX ワークシートにフォーマットをコピーする
- ワークブックを XLSX 形式で保存する
NPOI を使用して XLS を XLSX に変換する - 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);
}
C# 経由で XLSX に画像を追加する
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();