Excel 是 Microsoft 開發和發布的 電子表格 應用程序。它最常用於存儲、組織和跟踪帶有公式和函數的數據集。在某些情況下,我們可能需要在 Excel 文件中生成和添加條形碼以嵌入特定信息。我們可以在 .NET 應用程序中以編程方式將機器可讀條碼圖像添加到 XLSX 或 XLS 文件。在本文中,我們將學習如何使用 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:
- 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
- 接下來,創建內存流對象的實例。
- 然後,調用 Save() 方法將條碼圖像保存到內存流中。
- 接下來,創建 Workbook 類的一個實例。
- 然後,將新的工作表添加到工作簿的 WorksheetCollection 中。
- 之後,將圖像以流對象和圖像位置作為參數添加到 Worksheet 的 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");
// 添加方法採用以下參數:
// Upper left row index,左上行的索引。
// Upper left column index,左上列的索引。
// 圖像文件。
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];
// 添加方法採用以下參數:
// 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 文件的任何工作表中的任何條形碼圖像:
- 首先,使用 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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。