C#を使用してExcelでバーコードを生成する

Excelは、Microsoftによって開発および公開されたスプレッドシートアプリケーションです。これは、数式や関数を使用してデータセットを保存、整理、追跡するために最も一般的に使用されます。場合によっては、特定の情報を埋め込むために、Excelファイルにバーコードを生成して追加する必要があります。 .NETアプリケーションのXLSXまたはXLSファイルに機械可読バーコード画像をプログラムで追加できます。この記事では、C#を使用して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にバーコード画像を追加できます。

  1. まず、引数としてエンコードするEncodeTypeとテキストを使用してBarcodeGeneratorクラスのインスタンスを作成します。
  2. 次に、メモリストリームオブジェクトのインスタンスを作成します。
  3. 次に、Save()メソッドを呼び出して、バーコード画像をメモリストリームに保存します。
  4. 次に、Workbookクラスのインスタンスを作成します。
  5. 次に、新しいワークシートをワークブックのWorksheetCollectionに追加します。
  6. その後、ストリームオブジェクトと画像の位置を引数として、ワークシートのPictureCollectionに画像を追加します。
  7. 最後に、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");
Excelスプレッドシートを作成し、C#を使用してバーコードを追加します。

Excelスプレッドシートを作成し、C#を使用してバーコードを追加します。

C#で既存のExcelファイルにバーコードを追加する

以下の手順に従って、既存のExcelブックの任意のシートにバーコード画像を追加することもできます。

  1. まず、引数としてエンコードするEncodeTypeとテキストを使用してBarcodeGeneratorクラスのインスタンスを作成します。
  2. 次に、メモリストリームオブジェクトのインスタンスを作成します。
  3. 次に、Save()メソッドを呼び出して、バーコード画像をメモリストリームに保存します。
  4. 次に、Workbookクラスを使用して既存のExcelファイルをロードします。
  5. 次に、インデックスでワークシートにアクセスします。
  6. その後、ストリームオブジェクトと画像の位置を引数としてAdd()メソッドを使用して、画像をPictureCollectionに追加します。
  7. 最後に、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ファイルの任意のシートに埋め込まれているバーコード画像を認識できます。

  1. まず、Workbookクラスを使用して既存のExcelファイルを読み込みます。
  2. 次に、インデックスでワークシートにアクセスします。
  3. 次に、画像を保存して、PictureCollectionからループでストリーミングします。
  4. 次に、画像ストリームとDecodeTypeを引数としてBarCodeReaderクラスのインスタンスを作成します。
  5. その後、ReadBarCodes()メソッドを呼び出して、BarCodeResultオブジェクトを取得します。
  6. 最後に、バーコード情報を表示します。

次のコード例は、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について詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目