从处理程序添加图像到excel

问题描述 投票:0回答:1

我正在对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文件中?

c# ajax excel httphandler
1个回答
0
投票

如果我理解你的代码,我不是100%肯定。首先,您应该分离生成工作簿并将其发送到客户端的两个步骤。

在您的代码段中,您正在组装一个字符串。在这种情况下,使用ToString()方法并将其放在字符串中。

qrCodeImage.ToString()的结果始终是"System.Drawing.Bitmap"

context.Response.Write(rechargeDT.Rows[i]["RechargeCode"] + "\t" + Amount + "\t" + rechargeDT.Rows[i]["SerialNumber"].ToString() + "\t" + qrCodeImage + "\t");

要解决您的问题,您需要excel互操作。 Microsoft.Office.Interop.Excel Namespace

© www.soinside.com 2019 - 2024. All rights reserved.