C# MVC4:将qrcode图像导出到excel工作表
我想导出表格中带有二维码图像的excel表格。qrcode是用序列号保存的,我用GoogleAPI生成它。我在返回C# MVC4:将qrcode图像导出到excel工作表,c#,asp.net,excel,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net,Excel,Asp.net Mvc 3,Asp.net Mvc 4,我想导出表格中带有二维码图像的excel表格。qrcode是用序列号保存的,我用GoogleAPI生成它。我在返回MvcHtmlString的控制器中执行它,并在视图中使用它,就像@Html.QRCode(item.SerialNumber,80,0) 在我看来,这很有效 我的控制器 public static MvcHtmlString QRCode(this HtmlHelper htmlHelper, string data, int size = 80, int margin = 4
MvcHtmlString
的控制器中执行它,并在视图中使用它,就像@Html.QRCode(item.SerialNumber,80,0)
在我看来,这很有效
我的控制器
public static MvcHtmlString QRCode(this HtmlHelper htmlHelper, string data, int size = 80, int margin = 4, QRCodeErrorCorrectionLevel errorCorrectionLevel = QRCodeErrorCorrectionLevel.Low, object htmlAttributes = null)
{
if (data == null)
throw new ArgumentNullException("data");
if (size < 1)
throw new ArgumentOutOfRangeException("size", size, "Must be greater than zero.");
if (margin < 0)
throw new ArgumentOutOfRangeException("margin", margin, "Must be greater than or equal to zero.");
if (!Enum.IsDefined(typeof(QRCodeErrorCorrectionLevel), errorCorrectionLevel))
throw new InvalidEnumArgumentException("errorCorrectionLevel", (int)errorCorrectionLevel, typeof(QRCodeErrorCorrectionLevel));
var url = string.Format("http://chart.apis.google.com/chart?cht=qr&chld={2}|{3}&chs={0}x{0}&chl={1}", size, HttpUtility.UrlEncode(data), errorCorrectionLevel.ToString()[0], margin);
var tag = new TagBuilder("img");
if (htmlAttributes != null)
tag.MergeAttributes(new RouteValueDictionary(htmlAttributes));
tag.Attributes.Add("src", url);
tag.Attributes.Add("width", size.ToString());
tag.Attributes.Add("height", size.ToString());
return new MvcHtmlString(tag.ToString(TagRenderMode.SelfClosing));
}
但此列不显示在导出的excel工作表中
谢谢您的帮助。您是否尝试过对图像进行base64编码?不,因为我无法将字符串转换为qr码,所以我在控制器中使用它作为视图中的标记,但我不知道如何在控制器中使用它。您的帖子并不完全清楚。你的实际问题是什么?我可以像google API一样获取字符串url,但我尝试将其作为图像保存并显示在excel工作表中,然后尝试将qrcode的数据类型更改为image,并使用wirte
image.ImageUrl=url;//解析url(url);图像宽度=80;图像。高度=80;atm2.QRcode=图像代码>但它不工作我不知道你的“atm2.QRCode”业务是什么,但如果你做Image=newimage(),它应该可以工作;image.ImageUrl=;我猜你的另一个代码/控件是乱七八糟的。您可以将图像标记导出到excel
System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
image.ImageUrl = url;
image.Width = 80;
image.Height = 80;
atm2.QRcode = image;