使用 C# 在 Excel 中生成條形碼

Excel 是 Microsoft 開發和發布的 電子表格 應用程序。它最常用於存儲、組織和跟踪帶有公式和函數的數據集。在某些情況下,我們可能需要在 Excel 文件中生成和添加條形碼以嵌入特定信息。我們可以在 .NET 應用程序中以編程方式將機器可讀條碼圖像添加到 XLSXXLS 文件。在本文中,我們將學習如何使用 C# 在 Excel 中生成條形碼。

文章應涵蓋以下主題:

用於在 Excel 中生成條形碼的 C# API

要將條形碼添加到 Excel 電子表格,我們將遵循兩個步驟的過程。我們將使用 Aspose.Cells for .NET API 來創建或加載 Excel 文件。 API 的 Workbook 類允許創建新的 Excel 工作簿或加載現有的 Excel 文件以進行進一步處理。此類的 Save() 方法將工作簿保存在給定的文件路徑上。 API 還提供了一個 Worksheet 類來處理所有工作表級操作。

我們將使用 Aspose.BarCode for .NET API 生成條碼圖像並將其添加到 Excel 工作表。它提供了BarcodeGenerator類來生成指定EncodeType的條碼。此類的 Save() 方法將條碼圖像以特定格式保存到流中。它提供 BarCodeImageFormat 枚舉來指定保存格式。 API 還提供了 BarCodeReader 類來從圖像中讀取條形碼。

下載 API 的 DLL 或使用 NuGet 安裝它們。

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.Cells

在 C# 中創建 Excel 電子表格並添加條形碼

我們可以按照下面給出的步驟創建一個新的 Excel 電子表格並將條形碼圖像添加到 Excel:

  1. 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
  2. 接下來,創建內存流對象的實例。
  3. 然後,調用 Save() 方法將條碼圖像保存到內存流中。
  4. 接下來,創建 Workbook 類的一個實例。
  5. 然後,將新的工作表添加到工作簿的 WorksheetCollection 中。
  6. 之後,將圖像以流對象和圖像位置作為參數添加到 Worksheet 的 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");

// 添加方法採用以下參數:
// Upper left row index,左上行的索引。
// Upper left column index,左上列的索引。
// 圖像文件。
sheet.Pictures.Add(5, 5, ms);

// 保存文件
workbook.Save(dataDir + "sample.xlsx");
使用 C# 創建 Excel 電子表格並添加條形碼。

使用 C# 創建 Excel 電子表格並添加條形碼。

在 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];

// 添加方法採用以下參數:
// Upper left row index,左上行的索引。
// Upper left column index,左上列的索引。
// 圖像文件。
sheet.Pictures.Add(5, 5, ms);

// 保存文件
workbook.Save(dataDir + "sample_out.xlsx");

在C#中將QR碼添加到Excel文件

同樣,我們也可以按照前面提到的步驟在Excel文件中添加一個二維碼。但是,我們只需要在第一步中將 EncodeType 設置為 QR。我們可能還需要在第 6 步中調整圖像位置。

下面的代碼示例演示瞭如何使用 C# 將二維碼添加到 Excel 文件。

// 此代碼示例演示如何將 QR 代碼添加到現有 Excel 文件。
// 文檔目錄的路徑。
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];

// 添加方法採用以下參數:
// Upper left row index,左上行的索引。
// Upper left column index,左上列的索引。
// 圖像文件。
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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看