Genera codice a barre in Excel usando C#

Excel è un’applicazione foglio di calcolo sviluppata e pubblicata da Microsoft. È più comunemente usato per archiviare, organizzare e tenere traccia di set di dati con formule e funzioni. In alcuni casi, potrebbe essere necessario generare e aggiungere codici a barre nei file Excel per incorporare informazioni specifiche. Possiamo aggiungere immagini di codici a barre leggibili dalla macchina a file XLSX o XLS in modo programmatico nelle applicazioni .NET. In questo articolo impareremo come generare un codice a barre in Excel usando C#.

L’articolo tratterà i seguenti argomenti:

API C# per generare codici a barre in Excel

Per aggiungere codici a barre ai fogli di calcolo Excel, seguiremo una procedura in due passaggi. Utilizzeremo l’API Aspose.Cells for .NET per creare o caricare un file Excel. La classe Cartella di lavoro dell’API consente di creare una nuova cartella di lavoro di Excel o di caricare un file Excel esistente per un’ulteriore elaborazione. Il metodo Save() di questa classe salva la cartella di lavoro nel percorso del file specificato. L’API fornisce anche una classe Worksheet per gestire tutte le operazioni a livello di foglio.

Genereremo e aggiungeremo l’immagine del codice a barre al foglio Excel utilizzando l’API Aspose.BarCode for .NET. Fornisce la classe BarcodeGenerator per generare il codice a barre del EncodeType specificato. Il metodo Save() di questa classe salva l’immagine del codice a barre per lo streaming in un formato specifico. Fornisce l’enumerazione BarCodeImageFormat per specificare i formati di salvataggio. L’API fornisce anche la classe BarCodeReader per leggere il codice a barre dalle immagini.

Si prega di scaricare le DLL delle API o installarle utilizzando NuGet.

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

Crea foglio di calcolo Excel e aggiungi codice a barre in C#

Possiamo creare un nuovo foglio di calcolo Excel e aggiungere un’immagine di codice a barre a Excel seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe BarcodeGenerator con EncodeType e il testo da codificare come argomenti.
  2. Quindi, crea un’istanza dell’oggetto flusso di memoria.
  3. Quindi, chiama il metodo Save() per salvare l’immagine del codice a barre nel flusso di memoria.
  4. Quindi, crea un’istanza della classe Workbook.
  5. Quindi, aggiungi un nuovo foglio di lavoro a WorksheetCollection della cartella di lavoro.
  6. Successivamente, aggiungi l’immagine a PictureCollection del foglio di lavoro con l’oggetto stream e la posizione dell’immagine come argomenti.
  7. Infine, chiama il metodo Save(). Prende il percorso del file XLSX di output come argomento.

Nell’esempio di codice seguente viene illustrato come creare un nuovo foglio di calcolo di Excel e aggiungere un’immagine di codice a barre usando C#.

// Questo esempio di codice mostra come aggiungere codice a barre a un nuovo file Excel.
// Il percorso della directory dei documenti.
string dataDir = @"C:\Files\BarCode\";

// Istanziare oggetto codice a barre lineare, impostare il testo del codice e il tipo di simbologia per il codice a barre
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Creazione del flusso di memoria e salvataggio dell'immagine del codice a barre nel flusso di memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Istanziare una classe Excel che rappresenta un file Excel
Workbook workbook = new Workbook();

// Aggiunta di un nuovo foglio
Worksheet sheet = workbook.Worksheets.Add("MySheet");

// Il metodo Add accetta i seguenti parametri:
// Indice della riga in alto a sinistra, l'indice della riga in alto a sinistra.
// Indice della colonna in alto a sinistra, l'indice della colonna in alto a sinistra.
// File immagine.
sheet.Pictures.Add(5, 5, ms);

// Salva il file
workbook.Save(dataDir + "sample.xlsx");
Crea un foglio di calcolo Excel e aggiungi un codice a barre usando C#.

Crea un foglio di calcolo Excel e aggiungi un codice a barre usando C#.

Aggiungi codice a barre al file Excel esistente in C#

Possiamo anche aggiungere un’immagine di codice a barre a qualsiasi foglio di una cartella di lavoro Excel esistente seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe BarcodeGenerator con EncodeType e il testo da codificare come argomenti.
  2. Quindi, crea un’istanza dell’oggetto flusso di memoria.
  3. Quindi, chiama il metodo Save() per salvare l’immagine del codice a barre nel flusso di memoria.
  4. Quindi, carica un file Excel esistente utilizzando la classe Cartella di lavoro.
  5. Quindi, accedi al foglio di lavoro in base al suo indice.
  6. Successivamente, aggiungi l’immagine a PictureCollection utilizzando il metodo Add() con l’oggetto stream e la posizione dell’immagine come argomenti.
  7. Infine, chiama il metodo Save(). Prende il percorso del file XLSX di output come argomento.

Nell’esempio di codice seguente viene illustrato come aggiungere un’immagine di codice a barre a un file Excel esistente usando C#.

// Questo esempio di codice mostra come aggiungere codice a barre a un file Excel esistente.
// Il percorso della directory dei documenti.
string dataDir = @"C:\Files\BarCode\";

// Crea un'istanza dell'oggetto codice a barre lineare, imposta il testo del codice e il tipo di simbologia per il codice a barre
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Creazione del flusso di memoria e salvataggio dell'immagine del codice a barre nel flusso di memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Istanziare una classe Excel che rappresenta un file Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Accedi al foglio tramite il suo indice
Worksheet sheet = workbook.Worksheets[0];

// Il metodo Add accetta i seguenti parametri:
// Indice della riga in alto a sinistra, l'indice della riga in alto a sinistra.
// Indice della colonna in alto a sinistra, l'indice della colonna in alto a sinistra.
// File immagine.
sheet.Pictures.Add(5, 5, ms);

// Salva il file
workbook.Save(dataDir + "sample_out.xlsx");

Aggiungi codice QR al file Excel in C#

Allo stesso modo, possiamo anche aggiungere un codice QR al file Excel seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare EncodeType come QR nel primo passaggio. Potrebbe anche essere necessario regolare la posizione dell’immagine nel passaggio n. 6.

L’esempio di codice seguente mostra come aggiungere un codice QR a un file Excel usando C#.

// Questo esempio di codice mostra come aggiungere codice QR a un file Excel esistente.
// Il percorso della directory dei documenti.
string dataDir = @"C:\Files\BarCode\";

// Istanziare oggetto codice a barre lineare, impostare il testo del codice e il tipo di simbologia per il codice a barre
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// Creazione del flusso di memoria e salvataggio dell'immagine del codice a barre nel flusso di memoria
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Istanziare una classe Excel che rappresenta un file Excel
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Accedi al foglio tramite il suo indice
Worksheet sheet = workbook.Worksheets[0];

// Il metodo Add accetta i seguenti parametri:
// Indice della riga in alto a sinistra, l'indice della riga in alto a sinistra.
// Indice della colonna in alto a sinistra, l'indice della colonna in alto a sinistra.
// File immagine.
sheet.Pictures.Add(5, 5, ms);

// Salva il file
workbook.Save(dataDir + "sample_out_qr.xlsx");

Leggi il codice a barre dal file Excel usando C#

Possiamo riconoscere qualsiasi immagine di codice a barre incorporata su qualsiasi foglio del file Excel seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica un file Excel esistente utilizzando la classe Cartella di lavoro.
  2. Quindi, accedi al foglio di lavoro in base al suo indice.
  3. Quindi, salva le immagini per lo streaming da PictureCollection in un ciclo.
  4. Quindi, crea un’istanza della classe BarCodeReader con flusso di immagini e DecodeType come argomenti.
  5. Dopodiché, chiama il metodo ReadBarCodes() per ottenere l’oggetto BarCodeResult.
  6. Infine, mostra le informazioni sul codice a barre.

Nell’esempio di codice seguente viene illustrato come leggere un’immagine di codice a barre da un file di Excel usando C#.

// Questo esempio di codice mostra come leggere il codice a barre da un file Excel.
// Il percorso della directory dei documenti.
string dataDir = @"C:\Files\BarCode\";

// Istanziare una classe Excel che rappresenta un file Excel
Workbook workbook = new Workbook(dataDir + "sample_out.xlsx");

Worksheet sheet = workbook.Worksheets[0];

// Salva le immagini per lo streaming in un ciclo
foreach(var img in sheet.Pictures)
{
  // Salva l'immagine per lo streaming
  MemoryStream imageStream = new MemoryStream();
  img.ToImage(imageStream, new Aspose.Cells.Rendering.ImageOrPrintOptions());

  // Riconosci il codice a barre dal flusso di immagini sopra
  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);
    }
  }
}

L’esempio di codice precedente produrrà il seguente output.

Codetext found: Code128
Symbology: 1234567

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • creare una cartella di lavoro di Excel a livello di codice;
  • aggiungi un nuovo foglio nella cartella di lavoro di Excel;
  • generare e aggiungere un’immagine di codice a barre al foglio di calcolo di Excel;
  • leggere un’immagine di codice a barre da un file Excel.

Inoltre, puoi saperne di più su Aspose.BarCode per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche