Generera streckkod i Excel med C#

Excel är ett kalkylblad-program utvecklat och publicerat av Microsoft. Det används oftast för att lagra, organisera och spåra datamängder med formler och funktioner. I vissa fall kan vi behöva generera och lägga till streckkoder i Excel-filer för att bädda in specifik information. Vi kan lägga till maskinläsbara streckkodsbilder till XLSX- eller XLS-filer programmatiskt i .NET-applikationer. I den här artikeln kommer vi att lära oss hur man genererar en streckkod i Excel med C#.

Artikeln ska täcka följande ämnen:

C# API för att generera streckkoder i Excel

För att lägga till streckkoder till Excel-kalkylblad kommer vi att följa en tvåstegsprocedur. Vi kommer att använda Aspose.Cells for .NET API för att skapa eller ladda en Excel-fil. Klassen Arbetsbok i API:t gör det möjligt att skapa en ny Excel-arbetsbok eller ladda en befintlig Excel-fil för vidare bearbetning. Metoden Save() för denna klass sparar arbetsboken på den givna sökvägen. API:et tillhandahåller också en klass Worksheet för att hantera alla operationer på arknivå.

Vi kommer att generera och lägga till streckkodsbilden till Excel-arket med hjälp av Aspose.BarCode for .NET API. Den tillhandahåller klassen BarcodeGenerator för att generera streckkoden för den specificerade EncodeType. Metoden Save() för denna klass sparar streckkodsbilden för att streama i ett specifikt format. Den tillhandahåller BarCodeImageFormat uppräkning för att specificera sparade format. API:et tillhandahåller också klassen BarCodeReader för att läsa streckkoden från bilder.

Vänligen antingen ladda ned API:ernas DLL:er eller installera dem med NuGet.

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

Skapa Excel-kalkylblad och lägg till streckkod i C#

Vi kan skapa ett nytt Excel-kalkylblad och lägga till en streckkodsbild till Excel genom att följa stegen nedan:

  1. Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
  2. Skapa sedan en instans av minnesströmobjektet.
  3. Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
  4. Skapa sedan en instans av klassen Workbook.
  5. Lägg sedan till ett nytt arbetsblad i WorksheetCollection i arbetsboken.
  6. Lägg sedan till bilden i PictureCollection i arbetsbladet med strömobjektet och bildpositionen som argument.
  7. Till sist, anropa metoden Save(). Den tar utdata XLSX-filsökvägen som ett argument.

Följande kodexempel visar hur man skapar ett nytt Excel-kalkylblad och lägger till en streckkodsbild med C#.

// Detta kodexempel visar hur man lägger till streckkod i en ny Excel-fil.
// Sökvägen till dokumentkatalogen.
string dataDir = @"C:\Files\BarCode\";

// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Skapa minnesström och spara streckkodsbild till minnesström
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Instantiera Excel-klass som representerar en Excel-fil
Workbook workbook = new Workbook();

// Lägger till nytt blad
Worksheet sheet = workbook.Worksheets.Add("MySheet");

// Add-metoden tar följande parametrar:
// Övre vänstra radens index, indexet för den övre vänstra raden.
// Övre vänstra kolumnindex, index för den övre vänstra kolumnen.
// Bildfil.
sheet.Pictures.Add(5, 5, ms);

// Spara filen
workbook.Save(dataDir + "sample.xlsx");
Skapa ett Excel-kalkylblad och lägg till en streckkod med C#.

Skapa ett Excel-kalkylblad och lägg till en streckkod med C#.

Lägg till streckkod till befintlig Excel-fil i C#

Vi kan också lägga till en streckkodsbild till valfritt ark i en befintlig Excel-arbetsbok genom att följa stegen nedan:

  1. Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
  2. Skapa sedan en instans av minnesströmobjektet.
  3. Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
  4. Läs sedan in en befintlig Excel-fil med klassen Workbook.
  5. Öppna sedan arbetsbladet genom dess index.
  6. Efter det lägger du till bilden i PictureCollection med metoden Add() med strömobjektet och bildpositionen som argument.
  7. Till sist, anropa metoden Save(). Den tar utdata XLSX-filsökvägen som ett argument.

Följande kodexempel visar hur man lägger till en streckkodsbild till en befintlig Excel-fil med C#.

// Detta kodexempel visar hur man lägger till streckkod i en befintlig Excel-fil.
// Sökvägen till dokumentkatalogen.
string dataDir = @"C:\Files\BarCode\";

// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");

// Skapa minnesström och spara streckkodsbild till minnesström
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Instantiera Excel-klass som representerar en Excel-fil
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Få åtkomst till arket genom dess index
Worksheet sheet = workbook.Worksheets[0];

// Add-metoden tar följande parametrar:
// Övre vänstra radens index, indexet för den övre vänstra raden.
// Övre vänstra kolumnindex, index för den övre vänstra kolumnen.
// Bildfil.
sheet.Pictures.Add(5, 5, ms);

// Spara filen
workbook.Save(dataDir + "sample_out.xlsx");

Lägg till QR-kod till Excel-fil i C#

På samma sätt kan vi också lägga till en QR-kod till Excel-filen genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in EncodeType som QR i det första steget. Vi kan också behöva justera bildpositionen i steg #6.

Följande kodexempel visar hur man lägger till en QR-kod i en Excel-fil med C#.

// Detta kodexempel visar hur man lägger till QR-kod i en befintlig Excel-fil.
// Sökvägen till dokumentkatalogen.
string dataDir = @"C:\Files\BarCode\";

// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// Skapa minnesström och spara streckkodsbild till minnesström
System.IO.Stream ms = new System.IO.MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Instantiera Excel-klass som representerar en Excel-fil
Workbook workbook = new Workbook(dataDir + "sample.xlsx");

// Få åtkomst till arket genom dess index
Worksheet sheet = workbook.Worksheets[0];

// Add-metoden tar följande parametrar:
// Övre vänstra radens index, indexet för den övre vänstra raden.
// Övre vänstra kolumnindex, index för den övre vänstra kolumnen.
// Bildfil.
sheet.Pictures.Add(5, 5, ms);

// Spara filen
workbook.Save(dataDir + "sample_out_qr.xlsx");

Läs streckkod från Excel-fil med C#

Vi kan känna igen alla streckkodsbilder som är inbäddade på valfritt ark i Excel-filen genom att följa stegen nedan:

  1. Först laddar du en befintlig Excel-fil med klassen Workbook.
  2. Öppna sedan arbetsbladet genom dess index.
  3. Spara sedan bilderna för att streama från PictureCollection i en slinga.
  4. Skapa sedan en instans av klassen BarCodeReader med bildström och DecodeType som argument.
  5. Efter det, anropa metoden ReadBarCodes() för att få objektet BarCodeResult.
  6. Till sist, visa streckkodsinformationen.

Följande kodexempel visar hur man läser en streckkodsbild från en Excel-fil med C#.

// Detta kodexempel visar hur man läser streckkoder från en Excel-fil.
// Sökvägen till dokumentkatalogen.
string dataDir = @"C:\Files\BarCode\";

// Instantiera Excel-klass som representerar en Excel-fil
Workbook workbook = new Workbook(dataDir + "sample_out.xlsx");

Worksheet sheet = workbook.Worksheets[0];

// Spara bilder för att streama i en slinga
foreach(var img in sheet.Pictures)
{
  // Spara bilden för att streama
  MemoryStream imageStream = new MemoryStream();
  img.ToImage(imageStream, new Aspose.Cells.Rendering.ImageOrPrintOptions());

  // Känn igen streckkoden från bildströmmen ovan
  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);
    }
  }
}

Ovanstående kodexempel ska producera följande utdata.

Codetext found: Code128
Symbology: 1234567

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • skapa en Excel-arbetsbok programmatiskt;
  • lägg till ett nytt ark i Excel-arbetsboken;
  • generera och lägga till en streckkodsbild till Excel-kalkylarket;
  • läsa en streckkodsbild från en Excel-fil.

Dessutom kan du lära dig mer om Aspose.BarCode för .NET API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forum.

Se även