Tạo mã vạch trong Excel bằng C#

Excel là một ứng dụng bảng tính được phát triển và xuất bản bởi Microsoft. Nó được sử dụng phổ biến nhất để lưu trữ, sắp xếp và theo dõi các tập dữ liệu với các công thức và hàm. Trong một số trường hợp nhất định, chúng tôi có thể cần tạo và thêm mã vạch trong tệp Excel để nhúng thông tin cụ thể. Chúng tôi có thể thêm hình ảnh mã vạch mà máy có thể đọc được vào tệp XLSX hoặc XLS theo lập trình trong các ứng dụng .NET. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo mã vạch trong Excel bằng C#.

Bài báo sẽ bao gồm các chủ đề sau:

C# API để tạo mã vạch trong Excel

Để thêm mã vạch vào bảng tính Excel, chúng tôi sẽ thực hiện theo quy trình hai bước. Chúng tôi sẽ sử dụng API Aspose.Cells for .NET để tạo hoặc tải tệp Excel. Lớp Workbook của API cho phép tạo một sổ làm việc Excel mới hoặc tải một tệp Excel hiện có để xử lý thêm. Phương thức Save() của lớp này lưu Workbook trên đường dẫn tệp đã cho. API cũng cung cấp một lớp Trang tính để xử lý tất cả các hoạt động ở cấp trang tính.

Chúng tôi sẽ tạo và thêm hình ảnh mã vạch vào trang tính Excel bằng cách sử dụng API Aspose.BarCode for .NET. Nó cung cấp lớp BarcodeGenerator để tạo mã vạch của EncodeType được chỉ định. Phương thức Save() của lớp này lưu hình ảnh mã vạch để phát trực tuyến ở một định dạng cụ thể. Nó cung cấp kiểu liệt kê BarCodeImageFormat để chỉ định các định dạng lưu. API cũng cung cấp lớp BarCodeReader để đọc mã vạch từ hình ảnh.

Vui lòng tải xuống DLL của API hoặc cài đặt chúng bằng NuGet.

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

Tạo bảng tính Excel và thêm mã vạch trong C#

Chúng tôi có thể tạo một bảng tính Excel mới và thêm hình ảnh mã vạch vào Excel bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một phiên bản của lớp BarcodeGenerator với EncodeType và văn bản để mã hóa dưới dạng đối số.
  2. Tiếp theo, tạo một thể hiện của đối tượng dòng bộ nhớ.
  3. Sau đó, gọi phương thức Save() để lưu hình ảnh mã vạch vào dòng bộ nhớ.
  4. Tiếp theo, tạo một thể hiện của lớp Workbook.
  5. Sau đó, thêm một Trang tính mới vào WorksheetCollection của Workbook.
  6. Sau đó, thêm hình ảnh vào PictureCollection của Trang tính với đối tượng luồng và vị trí hình ảnh làm đối số.
  7. Cuối cùng, gọi phương thức Save(). Nó lấy đường dẫn tệp XLSX đầu ra làm đối số.

Ví dụ mã sau đây trình bày cách tạo bảng tính Excel mới và thêm hình ảnh mã vạch bằng C#.

// Ví dụ về mã này trình bày cách thêm Mã vạch vào một tệp Excel mới.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Tạo dòng bộ nhớ và lưu hình ảnh mã vạch vào dòng bộ nhớ
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Khởi tạo lớp Excel đại diện cho một tệp Excel
Workbook workbook = new Workbook();

// Thêm trang tính mới
Worksheet sheet = workbook.Worksheets.Add("MySheet");

// Phương thức Add nhận các tham số sau:
// Chỉ mục hàng trên bên trái, chỉ số của hàng trên bên trái.
// Chỉ số cột trên bên trái, chỉ số của cột trên bên trái.
// Tệp hình ảnh.
sheet.Pictures.Add(5, 5, ms);

// Lưu các tập tin
workbook.Save(dataDir + "sample.xlsx");
Tạo Bảng tính Excel và Thêm Mã vạch bằng C#.

Tạo Bảng tính Excel và Thêm Mã vạch bằng C#.

Thêm mã vạch vào tệp Excel hiện có trong C#

Chúng tôi cũng có thể thêm hình ảnh mã vạch vào bất kỳ trang tính nào của sổ làm việc Excel hiện có bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tạo một phiên bản của lớp BarcodeGenerator với EncodeType và văn bản để mã hóa dưới dạng đối số.
  2. Tiếp theo, tạo một thể hiện của đối tượng dòng bộ nhớ.
  3. Sau đó, gọi phương thức Save() để lưu hình ảnh mã vạch vào dòng bộ nhớ.
  4. Tiếp theo, tải tệp Excel hiện có bằng lớp Sổ làm việc.
  5. Sau đó, truy cập Trang tính theo chỉ mục của nó.
  6. Sau đó, thêm hình ảnh vào PictureCollection bằng phương thức Add() với đối tượng luồng và vị trí hình ảnh làm đối số.
  7. Cuối cùng, gọi phương thức Save(). Nó lấy đường dẫn tệp XLSX đầu ra làm đối số.

Ví dụ mã sau đây trình bày cách thêm hình ảnh mã vạch vào tệp Excel hiện có bằng C#.

// Ví dụ mã này trình bày cách thêm Mã vạch vào tệp Excel hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Tạo dòng bộ nhớ và lưu hình ảnh mã vạch vào dòng bộ nhớ
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Khởi tạo lớp Excel đại diện cho một tệp Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Truy cập trang tính theo chỉ mục của nó
Worksheet sheet = workbook.Worksheets[0];

// Phương thức Add nhận các tham số sau:
// Chỉ số hàng trên bên trái, chỉ số của hàng trên bên trái.
// Chỉ số cột phía trên bên trái, chỉ số của cột phía trên bên trái.
// Tệp hình ảnh.
sheet.Pictures.Add(5, 5, ms);

// Lưu các tập tin
workbook.Save(dataDir + "sample_out.xlsx");

Thêm mã QR vào tệp Excel trong C#

Tương tự, chúng ta cũng có thể thêm mã QR vào tệp Excel bằng cách làm theo các bước đã đề cập trước đó. Tuy nhiên, chúng ta chỉ cần đặt EncodeType là QR ở bước đầu tiên. Chúng tôi cũng có thể cần điều chỉnh vị trí hình ảnh trong bước # 6.

Ví dụ mã sau đây minh họa cách thêm mã QR vào tệp Excel bằng C#.

// Ví dụ mã này trình bày cách thêm mã QR vào tệp Excel hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// Tạo dòng bộ nhớ và lưu hình ảnh mã vạch vào dòng bộ nhớ
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Khởi tạo lớp Excel đại diện cho một tệp Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Truy cập trang tính theo chỉ mục của nó
Worksheet sheet = workbook.Worksheets[0];

// Phương thức Add nhận các tham số sau:
// Chỉ số hàng trên bên trái, chỉ số của hàng trên bên trái.
// Chỉ số cột phía trên bên trái, chỉ số của cột phía trên bên trái.
// Tệp hình ảnh.
sheet.Pictures.Add(5, 5, ms);

// Lưu các tập tin
workbook.Save(dataDir + "sample_out_qr.xlsx");

Đọc mã vạch từ tệp Excel bằng C#

Chúng tôi có thể nhận ra bất kỳ hình ảnh mã vạch nào được nhúng trên bất kỳ trang tính nào của tệp Excel bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tải một tệp Excel hiện có bằng cách sử dụng lớp Workbook.
  2. Sau đó, truy cập Trang tính theo chỉ mục của nó.
  3. Tiếp theo, lưu hình ảnh để phát trực tuyến từ PictureCollection trong một vòng lặp.
  4. Tiếp theo, tạo một thể hiện của lớp BarCodeReader với luồng hình ảnh và DecodeType làm đối số.
  5. Sau đó, gọi phương thức ReadBarCodes() để lấy đối tượng BarCodeResult.
  6. Cuối cùng, hiển thị thông tin mã vạch.

Ví dụ mã sau đây trình bày cách đọc hình ảnh mã vạch từ tệp Excel bằng C#.

// Ví dụ mã này trình bày cách đọc mã vạch từ tệp Excel.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo lớp Excel đại diện cho một tệp Excel
Workbook workbook = new Workbook(dataDir + "sample_out.xlsx");

Worksheet sheet = workbook.Worksheets[0];

// Lưu hình ảnh để phát trực tiếp trong một vòng lặp
foreach(var img in sheet.Pictures)
{
  // Lưu hình ảnh vào luồng
  MemoryStream imageStream = new MemoryStream();
  img.ToImage(imageStream, new Aspose.Cells.Rendering.ImageOrPrintOptions());

  // Nhận dạng mã vạch từ luồng hình ảnh ở trên
  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);
    }
  }
}

Mẫu mã trên sẽ tạo ra kết quả sau.

Codetext found: Code128
Symbology: 1234567

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách:

  • tạo một sổ làm việc Excel theo lập trình;
  • thêm một trang tính mới trong sổ làm việc Excel;
  • tạo và thêm hình ảnh mã vạch vào bảng tính Excel;
  • đọc hình ảnh mã vạch từ tệp Excel.

Bên cạnh đó, bạn có thể tìm hiểu thêm về Aspose.BarCode cho .NET API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm