Excelは、Microsoftによって開発および公開されたスプレッドシートアプリケーションです。これは、数式や関数を使用してデータセットを保存、整理、追跡するために最も一般的に使用されます。場合によっては、特定の情報を埋め込むために、Excelファイルにバーコードを生成して追加する必要があります。 .NETアプリケーションのXLSXまたはXLSファイルに機械可読バーコード画像をプログラムで追加できます。この記事では、C#を使用してExcelでバーコードを生成する方法を学習します。
この記事は、次のトピックをカバーするものとします。
- Excelでバーコードを生成するC#API
- Excelスプレッドシートを作成し、バーコードを追加します
- 既存のExcelファイルにバーコードを追加する
- ExcelファイルにQRコードを追加する
- Excelファイルからバーコードを読み取る
Excelでバーコードを生成するC#API
Excelスプレッドシートにバーコードを追加するには、2段階の手順に従います。 Aspose.Cells for .NET APIを使用して、Excelファイルを作成またはロードします。 APIのWorkbookクラスを使用すると、新しいExcelワークブックを作成したり、既存のExcelファイルを読み込んでさらに処理したりできます。このクラスのSave()メソッドは、指定されたファイルパスにブックを保存します。 APIは、すべてのシートレベルの操作を処理するためのWorksheetクラスも提供します。
Aspose.BarCode for .NET APIを使用して、バーコード画像を生成してExcelシートに追加します。指定されたEncodeTypeのバーコードを生成するためのBarcodeGeneratorクラスを提供します。このクラスのSave()メソッドは、バーコード画像を保存して特定の形式でストリーミングします。保存形式を指定するためのBarCodeImageFormat列挙を提供します。 APIは、画像からバーコードを読み取るためのBarCodeReaderクラスも提供します。
APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。
PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.Cells
Excelスプレッドシートを作成し、C#でバーコードを追加します
以下の手順に従って、新しいExcelスプレッドシートを作成し、Excelにバーコード画像を追加できます。
- まず、引数としてエンコードするEncodeTypeとテキストを使用してBarcodeGeneratorクラスのインスタンスを作成します。
- 次に、メモリストリームオブジェクトのインスタンスを作成します。
- 次に、Save()メソッドを呼び出して、バーコード画像をメモリストリームに保存します。
- 次に、Workbookクラスのインスタンスを作成します。
- 次に、新しいワークシートをワークブックのWorksheetCollectionに追加します。
- その後、ストリームオブジェクトと画像の位置を引数として、ワークシートのPictureCollectionに画像を追加します。
- 最後に、Save()メソッドを呼び出します。出力XLSXファイルパスを引数として取ります。
次のコード例は、C#を使用して新しいExcelスプレッドシートを作成し、バーコード画像を追加する方法を示しています。
// このコード例は、新しいExcelファイルにバーコードを追加する方法を示しています。
// ドキュメントディレクトリへのパス。
string dataDir = @"C:\Files\BarCode\";
// 線形バーコードオブジェクトをインスタンス化し、バーコードのコードテキストとシンボルタイプを設定します
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");
// メモリストリームの作成とバーコード画像のメモリストリームへの保存
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Excelファイルを表すExcelクラスをインスタンス化します
Workbook workbook = new Workbook();
// 新しいシートを追加する
Worksheet sheet = workbook.Worksheets.Add("MySheet");
// Addメソッドは、次のパラメーターを取ります。
// 左上の行のインデックス、左上の行のインデックス。
// 左上の列のインデックス、左上の列のインデックス。
// 画像ファイル。
sheet.Pictures.Add(5, 5, ms);
// ファイルを保存します
workbook.Save(dataDir + "sample.xlsx");
C#で既存のExcelファイルにバーコードを追加する
以下の手順に従って、既存のExcelブックの任意のシートにバーコード画像を追加することもできます。
- まず、引数としてエンコードするEncodeTypeとテキストを使用してBarcodeGeneratorクラスのインスタンスを作成します。
- 次に、メモリストリームオブジェクトのインスタンスを作成します。
- 次に、Save()メソッドを呼び出して、バーコード画像をメモリストリームに保存します。
- 次に、Workbookクラスを使用して既存のExcelファイルをロードします。
- 次に、インデックスでワークシートにアクセスします。
- その後、ストリームオブジェクトと画像の位置を引数としてAdd()メソッドを使用して、画像をPictureCollectionに追加します。
- 最後に、Save()メソッドを呼び出します。出力XLSXファイルパスを引数として取ります。
次のコード例は、C#を使用して既存のExcelファイルにバーコード画像を追加する方法を示しています。
// このコード例は、既存のExcelファイルにバーコードを追加する方法を示しています。
// ドキュメントディレクトリへのパス。
string dataDir = @"C:\Files\BarCode\";
// 線形バーコードオブジェクトをインスタンス化し、バーコードのコードテキストとシンボルタイプを設定します
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");
// メモリストリームの作成とバーコード画像のメモリストリームへの保存
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Excelファイルを表すExcelクラスをインスタンス化します
Workbook workbook = new Workbook(dataDir + "sample.xlsx");
// インデックスでシートにアクセスする
Worksheet sheet = workbook.Worksheets[0];
// Addメソッドは、次のパラメーターを取ります。
// 左上の行のインデックス、左上の行のインデックス。
// 左上の列のインデックス、左上の列のインデックス。
// 画像ファイル。
sheet.Pictures.Add(5, 5, ms);
// ファイルを保存します
workbook.Save(dataDir + "sample_out.xlsx");
C#でExcelファイルにQRコードを追加する
同様に、前述の手順に従って、ExcelファイルにQRコードを追加することもできます。ただし、最初のステップでEncodeTypeをQRとして設定する必要があります。手順6で画像の位置を調整する必要がある場合もあります。
次のコード例は、C#を使用してExcelファイルにQRコードを追加する方法を示しています。
// このコード例は、既存のExcelファイルにQRコードを追加する方法を示しています。
// ドキュメントディレクトリへのパス。
string dataDir = @"C:\Files\BarCode\";
// 線形バーコードオブジェクトをインスタンス化し、バーコードのコードテキストとシンボルタイプを設定します
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");
// メモリストリームの作成とバーコード画像のメモリストリームへの保存
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Excelファイルを表すExcelクラスをインスタンス化します
Workbook workbook = new Workbook(dataDir + "sample.xlsx");
// インデックスでシートにアクセスする
Worksheet sheet = workbook.Worksheets[0];
// Addメソッドは、次のパラメーターを取ります。
// 左上の行のインデックス、左上の行のインデックス。
// 左上の列のインデックス、左上の列のインデックス。
// 画像ファイル。
sheet.Pictures.Add(5, 5, ms);
// ファイルを保存します
workbook.Save(dataDir + "sample_out_qr.xlsx");
C#を使用してExcelファイルからバーコードを読み取る
以下の手順に従って、Excelファイルの任意のシートに埋め込まれているバーコード画像を認識できます。
- まず、Workbookクラスを使用して既存のExcelファイルを読み込みます。
- 次に、インデックスでワークシートにアクセスします。
- 次に、画像を保存して、PictureCollectionからループでストリーミングします。
- 次に、画像ストリームとDecodeTypeを引数としてBarCodeReaderクラスのインスタンスを作成します。
- その後、ReadBarCodes()メソッドを呼び出して、BarCodeResultオブジェクトを取得します。
- 最後に、バーコード情報を表示します。
次のコード例は、C#を使用してExcelファイルからバーコード画像を読み取る方法を示しています。
// このコード例は、Excelファイルからバーコードを読み取る方法を示しています。
// ドキュメントディレクトリへのパス。
string dataDir = @"C:\Files\BarCode\";
// Excelファイルを表すExcelクラスをインスタンス化します
Workbook workbook = new Workbook(dataDir + "sample_out.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// 画像を保存してループでストリーミング
foreach(var img in sheet.Pictures)
{
// 画像を保存してストリーミング
MemoryStream imageStream = new MemoryStream();
img.ToImage(imageStream, new Aspose.Cells.Rendering.ImageOrPrintOptions());
// 上の画像ストリームからバーコードを認識します
using (BarCodeReader reader = new BarCodeReader(imageStream, DecodeType.Code128))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine("Codetext found: " + result.CodeType);
Console.WriteLine("Symbology: " + result.CodeText);
}
}
}
上記のコードサンプルは、次の出力を生成します。
Codetext found: Code128
Symbology: 1234567
無料ライセンスを取得する
無料の一時ライセンスを取得して、評価の制限なしにライブラリを試すことができます。
結論
この記事では、次の方法を学びました。
- プログラムでExcelワークブックを作成します。
- Excelブックに新しいシートを追加します。
- バーコード画像を生成してExcelスプレッドシートに追加します。
- Excelファイルからバーコード画像を読み取ります。
さらに、ドキュメントを使用して、Aspose.BarCode for.NET APIについて詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。