Генерация штрих-кода в Excel с помощью C#

Excel — это приложение электронная таблица, разработанное и опубликованное Microsoft. Чаще всего он используется для хранения, организации и отслеживания наборов данных с помощью формул и функций. В некоторых случаях нам может потребоваться сгенерировать и добавить штрих-коды в файлы Excel для встраивания определенной информации. Мы можем программно добавлять машиночитаемые изображения штрих-кода в файлы XLSX или XLS в приложениях .NET. В этой статье мы узнаем, как сгенерировать штрих-код в Excel с помощью C#.

Статья должна охватывать следующие темы:

C# API для создания штрих-кода в Excel

Для добавления штрих-кодов в электронные таблицы Excel мы будем следовать двухэтапной процедуре. Мы будем использовать API Aspose.Cells for .NET для создания или загрузки файла Excel. Класс Workbook API позволяет создать новую книгу Excel или загрузить существующий файл Excel для дальнейшей обработки. Метод Save() этого класса сохраняет книгу по заданному пути к файлу. API также предоставляет класс Worksheet для обработки всех операций на уровне листа.

Мы создадим и добавим изображение штрих-кода на лист Excel, используя API Aspose.BarCode for .NET. Он предоставляет класс BarcodeGenerator для создания штрих-кода указанного EncodeType. Метод Save() этого класса сохраняет изображение штрих-кода в потоке в определенном формате. Он предоставляет перечисление BarCodeImageFormat для указания форматов сохранения. API также предоставляет класс BarCodeReader для чтения штрих-кода с изображений.

Пожалуйста, либо скачайте библиотеки DLL API, либо установите их с помощью NuGet.

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

Создайте электронную таблицу Excel и добавьте штрих-код в С#

Мы можем создать новую электронную таблицу Excel и добавить изображение штрих-кода в Excel, выполнив следующие действия:

  1. Во-первых, создайте экземпляр класса BarcodeGenerator с EncodeType и текстом для кодирования в качестве аргументов.
  2. Затем создайте экземпляр объекта потока памяти.
  3. Затем вызовите метод Save(), чтобы сохранить изображение штрих-кода в потоке памяти.
  4. Затем создайте экземпляр класса Workbook.
  5. Затем добавьте новый рабочий лист в WorksheetCollection рабочей книги.
  6. После этого добавьте изображение в PictureCollection рабочего листа с объектом потока и позицией изображения в качестве аргументов.
  7. Наконец, вызовите метод Save(). В качестве аргумента он принимает путь к выходному файлу XLSX.

В следующем примере кода показано, как создать новую электронную таблицу Excel и добавить изображение штрих-кода с помощью C#.

// В этом примере кода показано, как добавить штрих-код в новый файл 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#.

Добавить штрих-код в существующий файл Excel на С#

Мы также можем добавить изображение штрих-кода на любой лист существующей книги Excel, выполнив следующие действия:

  1. Во-первых, создайте экземпляр класса BarcodeGenerator с EncodeType и текстом для кодирования в качестве аргументов.
  2. Затем создайте экземпляр объекта потока памяти.
  3. Затем вызовите метод Save(), чтобы сохранить изображение штрих-кода в потоке памяти.
  4. Затем загрузите существующий файл Excel с помощью класса Workbook.
  5. Затем получите доступ к рабочему листу по его индексу.
  6. После этого добавьте изображение в PictureCollection с помощью метода Add() с объектом потока и позицией изображения в качестве аргументов.
  7. Наконец, вызовите метод Save(). В качестве аргумента он принимает путь к выходному файлу XLSX.

В следующем примере кода показано, как добавить изображение штрих-кода в существующий файл Excel с помощью C#.

// В этом примере кода показано, как добавить штрих-код в существующий файл 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");

Добавить QR-код в файл Excel на С#

Точно так же мы также можем добавить QR-код в файл Excel, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить EncodeType как QR на первом шаге. Нам также может понадобиться настроить положение изображения на шаге № 6.

В следующем примере кода показано, как добавить QR-код в файл Excel с помощью C#.

// В этом примере кода показано, как добавить 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];

// Метод Add принимает следующие параметры:
// Индекс верхней левой строки, индекс верхней левой строки.
// Индекс верхнего левого столбца, индекс верхнего левого столбца.
// Файл изображения.
sheet.Pictures.Add(5, 5, ms);

// Сохраните файл
workbook.Save(dataDir + "sample_out_qr.xlsx");

Чтение штрих-кода из файла Excel с помощью С#

Мы можем распознать любое изображение штрих-кода, встроенное в любой лист файла Excel, выполнив следующие шаги:

  1. Во-первых, загрузите существующий файл Excel с помощью класса Workbook.
  2. Затем получите доступ к рабочему листу по его индексу.
  3. Затем сохраните изображения для потоковой передачи из PictureCollection в цикле.
  4. Затем создайте экземпляр класса BarCodeReader с потоком изображений и DecodeType в качестве аргументов.
  5. После этого вызовите метод ReadBarCodes(), чтобы получить объект BarCodeResult.
  6. Наконец, покажите информацию о штрих-коде.

В следующем примере кода показано, как считать изображение штрих-кода из файла Excel с помощью C#.

// В этом примере кода показано, как считывать штрих-код из файла 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, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также