C#_生成二维码放到excel中

1、需要提前导包

image-20230713105909449

2、代码

//创建二维码
//content:扫描二维码出来的内容,例如想要扫出来的内容是:A=3 & B=4,那么content就要赋值为 content="A=3 & B=4"
private Bitmap createQRCode(string content)
{
    QRCodeGenerator qRCodeGenerator = new QRCodeGenerator();
    QRCodeData qRCodeData = qRCodeGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.H);
    QRCode qRCode = new QRCode(qRCodeData);
    Bitmap bitmap = qRCode.GetGraphic(4, System.Drawing.Color.Black, System.Drawing.Color.White, false);
    return bitmap;
}
private void SetQR()
{
    //二维码内容
    string code = $"T={data["Main"]["Task_Code"].ToString()}&C={data["Main"]["Tenant"]}";
    
    //生成二维码
    var qrcode = this.createQRCode(code);
    qrcode.SetResolution(65, 65);
    
    //流处理
    var stream = new MemoryStream();
    qrcode.Save(stream, ImageFormat.Png);
    Image image = Image.FromStream(stream);
    Image qrimg;
    if (image.HorizontalResolution == 0 || image.VerticalResolution == 0)
    {
        qrimg = Dest(image, 65, 65);
    }
    else
    {
        qrimg = image;
    }
    //设置图片并调整尺寸放入0,0位置
    ExcelPicture picture;
    try
    {
        picture = ws.Drawings.AddPicture(data["Main"]["Task_Code"].ToString(), qrimg);
        picture.SetPosition(1, 8, 11, 30);
        picture.SetSize(65, 65);
    }
    catch (Exception ex)
    {
        Console.WriteLine("barcode:" + ex.Message + ";" + ex.StackTrace);
    }
    finally
    {

    }
}
posted on 2023-07-13 11:11  Jeffrey~~  阅读(83)  评论(0)    收藏  举报