我正在对HttpHandler
进行ajax调用以保存代码,并下载生成了qrcode的excel文件,我需要在excel文件中添加qrcode图像,如下所示:
string RechargeCardTransaction = "";
if (rechargeDT.Rows.Count > 0)
RechargeCardTransaction = rechargeDT.Rows[0]["IdRechargeCardTransaction"].ToString();
context.Response.ClearContent();
context.Response.ContentType = "application/download";
context.Response.AddHeader("content-disposition", "attachment;filename=RechargeTransacttionNumnber" + RechargeCardTransaction + ".xls");
context.Response.ContentEncoding = System.Text.Encoding.Unicode;
for (int i = 0; i <= rechargeDT.Rows.Count - 1; i++)
{
Bitmap qrCodeImage = null;
Utilities.GenerateBusQRCode(rechargeDT.Rows[i]["RechargeCode"].ToString(), ref qrCodeImage);
context.Response.Write("RechargeCode\tAmount\tSerialNumber\tQrCode\t");
context.Response.Write(System.Environment.NewLine);
context.Response.Write(rechargeDT.Rows[i]["RechargeCode"] + "\t" + Amount
+ "\t" + rechargeDT.Rows[i]["SerialNumber"].ToString() + "\t" + qrCodeImage + "\t");
}
context.Response.Flush();
context.Response.End();
context.Response.Close();
但是我一直在获取而不是位图图像,而是一个字符串System.Drawing.Bitmap
如何从处理程序ashx将图像保存在excel文件中?
答案 0 :(得分:0)
我不确定100%是否了解您的代码。 首先,您应该将生成工作簿并将其发送给客户端的两个步骤分开。
在您的代码段中,您正在组装一个字符串。在这种情况下,将使用ToString()方法并将其放置在字符串中。
qrCodeImage.ToString()的结果始终为THREE.WebGLRenderer
"System.Drawing.Bitmap"
要解决您的问题,您需要excel interop。 Microsoft.Office.Interop.Excel Namespace