Добавить изображение, чтобы отличиться от обработчика - PullRequest
0 голосов
/ 10 апреля 2019

Я делаю вызов ajax на HttpHandler для сохранения кодов и загрузки файла Excel с созданным qrcode, мне нужно добавить изображение qrcode в файл excel, как показано ниже:

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 Как я могу сохранить изображение, как оно есть в файле Excel из обработчика Ashx?

1 Ответ

0 голосов
/ 10 апреля 2019

Я не уверен на 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

...