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
{
}
}