我想在我的表格中导出带有qr-code图像的Excel工作表。 qrcode使用序列号保存,然后使用google apis生成它。我在返回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工作表,请执行以下操作:
我给网格视图的qrcode数据是
data.QRcode = atm.SerialNumber;
它实际上得到qrcode的字符串如何获取其代码的qrcode图像,就像在我看来我使用
@Html.QRCode(item.SerialNumber, 80, 0)
注意:我需要任何可以获得qrcode图像和其他数据的解决方案。
更新:我到达了图像的来源,然后根据图像的来源,如果有任何解决方案如何在Excel工作表中显示图像。 详细步骤: 1-获取图像的链接,如谷歌apis
System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
image.ImageUrl = url;
image.Width = 80;
image.Height = 80;
atm2.QRcode = image;
但此列未显示在导出的Excel工作表
中感谢您的帮助。