Excel es una hoja de cálculo aplicación desarrollada y publicada por Microsoft. Se usa más comúnmente para almacenar, organizar y rastrear conjuntos de datos con fórmulas y funciones. En ciertos casos, es posible que necesitemos generar y agregar códigos de barras en archivos de Excel para incrustar información específica. Podemos agregar imágenes de códigos de barras legibles por máquina a archivos XLSX o XLS mediante programación en aplicaciones .NET. En este artículo, aprenderemos cómo generar un código de barras en Excel usando C#.
El artículo cubrirá los siguientes temas:
- C# API para generar código de barras en Excel
- Crear hoja de cálculo de Excel y agregar código de barras
- Agregar código de barras a un archivo de Excel existente
- Agregar código QR a archivo de Excel
- Leer código de barras desde un archivo de Excel
C# API para generar código de barras en Excel
Para agregar códigos de barras a las hojas de cálculo de Excel, seguiremos un procedimiento de dos pasos. Usaremos la API Aspose.Cells for .NET para crear o cargar un archivo de Excel. La clase Workbook de la API permite crear un nuevo Workbook de Excel o cargar un archivo de Excel existente para su posterior procesamiento. El método Save() de esta clase guarda el Workbook en la ruta de archivo dada. La API también proporciona una clase Worksheet para manejar todas las operaciones a nivel de hoja.
Generaremos y agregaremos la imagen del código de barras a la hoja de Excel usando la API Aspose.BarCode for .NET. Proporciona la clase BarcodeGenerator para generar el código de barras del EncodeType especificado. El método Save() de esta clase guarda la imagen del código de barras para transmitir en un formato específico. Proporciona enumeración BarCodeImageFormat para especificar los formatos de guardado. La API también proporciona la clase BarCodeReader para leer el código de barras de las imágenes.
Descargue las DLL de las API o instálelas usando NuGet.
PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.Cells
Cree una hoja de cálculo de Excel y agregue un código de barras en C#
Podemos crear una nueva hoja de cálculo de Excel y agregar una imagen de código de barras al Excel siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de la clase BarcodeGenerator con EncodeType y texto para codificar como argumentos.
- A continuación, cree una instancia del objeto de flujo de memoria.
- Luego, llame al método Save() para guardar la imagen del código de barras en el flujo de memoria.
- A continuación, cree una instancia de la clase Workbook.
- Luego, agregue una nueva Hoja de trabajo a la Colección de hojas de trabajo del Workbook.
- Después de eso, agregue la imagen a la PictureCollection de la hoja de trabajo con el objeto de transmisión y la posición de la imagen como argumentos.
- Finalmente, llama al método Save(). Toma la ruta del archivo XLSX de salida como argumento.
El siguiente ejemplo de código demuestra cómo crear una nueva hoja de cálculo de Excel y agregar una imagen de código de barras usando C#.
// Este ejemplo de código demuestra cómo agregar un código de barras a un nuevo archivo de Excel.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";
// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");
// Crear flujo de memoria y guardar imagen de código de barras en flujo de memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Instanciar una clase de Excel que representa un archivo de Excel
Workbook workbook = new Workbook();
// Agregar nueva hoja
Worksheet sheet = workbook.Worksheets.Add("MySheet");
// El método Add toma los siguientes parámetros:
// Índice de la fila superior izquierda, el índice de la fila superior izquierda.
// Índice de la columna superior izquierda, el índice de la columna superior izquierda.
// Archivo de imagen.
sheet.Pictures.Add(5, 5, ms);
// Guarda el archivo
workbook.Save(dataDir + "sample.xlsx");
Agregar código de barras a un archivo de Excel existente en C#
También podemos agregar una imagen de código de barras a cualquier hoja de un libro de Excel existente siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de la clase BarcodeGenerator con EncodeType y texto para codificar como argumentos.
- A continuación, cree una instancia del objeto de flujo de memoria.
- Luego, llame al método Save() para guardar la imagen del código de barras en el flujo de memoria.
- A continuación, cargue un archivo de Excel existente utilizando la clase Workbook.
- Luego, acceda a la Hoja de trabajo por su índice.
- Después de eso, agregue la imagen a PictureCollection usando el método Add() con el objeto de transmisión y la posición de la imagen como argumentos.
- Finalmente, llama al método Save(). Toma la ruta del archivo XLSX de salida como argumento.
El siguiente ejemplo de código demuestra cómo agregar una imagen de código de barras a un archivo de Excel existente usando C#.
// Este ejemplo de código demuestra cómo agregar un código de barras a un archivo de Excel existente.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";
// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");
// Crear flujo de memoria y guardar imagen de código de barras en flujo de memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Instanciar una clase de Excel que representa un archivo de Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");
// Accede a la hoja por su índice
Worksheet sheet = workbook.Worksheets[0];
// El método Add toma los siguientes parámetros:
// Índice de la fila superior izquierda, el índice de la fila superior izquierda.
// Índice de la columna superior izquierda, el índice de la columna superior izquierda.
// Archivo de imagen.
sheet.Pictures.Add(5, 5, ms);
// Guarda el archivo
workbook.Save(dataDir + "sample_out.xlsx");
Agregar código QR a un archivo de Excel en C#
Del mismo modo, también podemos agregar un código QR al archivo de Excel siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos configurar EncodeType como QR en el primer paso. Es posible que también necesitemos ajustar la posición de la imagen en el paso # 6.
El siguiente código de ejemplo muestra cómo agregar un código QR a un archivo de Excel usando C#.
// Este ejemplo de código demuestra cómo agregar un código QR a un archivo de Excel existente.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";
// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");
// Crear flujo de memoria y guardar imagen de código de barras en flujo de memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Instanciar una clase de Excel que representa un archivo de Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");
// Accede a la hoja por su índice
Worksheet sheet = workbook.Worksheets[0];
// El método Add toma los siguientes parámetros:
// Índice de la fila superior izquierda, el índice de la fila superior izquierda.
// Índice de la columna superior izquierda, el índice de la columna superior izquierda.
// Archivo de imagen.
sheet.Pictures.Add(5, 5, ms);
// Guarda el archivo
workbook.Save(dataDir + "sample_out_qr.xlsx");
Lea el código de barras de un archivo de Excel usando C#
Podemos reconocer cualquier imagen de código de barras incrustada en cualquier hoja del archivo de Excel siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue un archivo de Excel existente utilizando la clase Workbook.
- Luego, acceda a la Hoja de trabajo por su índice.
- A continuación, guarde las imágenes para transmitirlas desde PictureCollection en un bucle.
- A continuación, cree una instancia de la clase BarCodeReader con el flujo de imágenes y DecodeType como argumentos.
- Después de eso, llame al método ReadBarCodes() para obtener el objeto BarCodeResult.
- Finalmente, muestra la información del código de barras.
El siguiente ejemplo de código demuestra cómo leer una imagen de código de barras de un archivo de Excel usando C#.
// Este ejemplo de código demuestra cómo leer un código de barras de un archivo de Excel.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";
// Instanciar una clase de Excel que representa un archivo de Excel
Workbook workbook = new Workbook(dataDir + "sample_out.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Guardar imágenes para transmitir en un bucle
foreach(var img in sheet.Pictures)
{
// Guardar imagen para transmitir
MemoryStream imageStream = new MemoryStream();
img.ToImage(imageStream, new Aspose.Cells.Rendering.ImageOrPrintOptions());
// Reconocer el código de barras del flujo de imágenes de arriba
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);
}
}
}
El ejemplo de código anterior producirá el siguiente resultado.
Codetext found: Code128
Symbology: 1234567
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.
Conclusión
En este artículo, hemos aprendido a:
- crear un Workbook de Excel mediante programación;
- agregue una nueva hoja en el libro de Excel;
- generar y agregar una imagen de código de barras a la hoja de cálculo de Excel;
- leer una imagen de código de barras de un archivo de Excel.
Además, puede obtener más información sobre Aspose.BarCode for .NET API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.