2016-06-01 159 views
3

嗨,我试图用QR码生成导出.csv文件。将图像导出为CSV

我已经完成QR码生成和CSV导出,但我想生成QR码图像绑定到我的.csv文件。

这里就是我做..

protected void lnkbtnSave_Click(object sender, EventArgs e) 
     { 
      int NoOfCode = int.Parse(txtNoOfCode.Text); 
      DateTime ExpiryDate = DateTime.Parse(txtExpiryDate.Text.ToString()); 
      string csv = string.Empty; 

      //Add the Header row for CSV file. 
      csv += "Code" + ',' + "Expiry On" + ',' + "QR Code" + ','; 
      csv += "\r\n"; 

      for (int i = 0; i < NoOfCode; i++) 
      { 
       string GeneratedCode = GenerateString(8); 
       Tuple<int, string, int> tuple = Code.AddData(GeneratedCode, ExpiryDate); 

       QRCodeGenerator qrGenerator = new QRCodeGenerator(); 
       QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(GeneratedCode, QRCodeGenerator.ECCLevel.Q); 
       System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image(); 
       imgBarCode.Height = 150; 
       imgBarCode.Width = 150; 
       byte[] byteImage; 
       using (Bitmap bitMap = qrCode.GetGraphic(20)) 
       { 
        using (MemoryStream ms = new MemoryStream()) 
        { 
         bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
         byteImage = ms.ToArray(); 
         imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage); 
        } 
        plBarCode.Controls.Add(imgBarCode); 

        csv += "\r\n"; 

        **csv += GeneratedCode.ToString() + ',' + ExpiryDate.ToString() + ',' + bitMap + ',';** 
       } 
      } 

      Response.Clear(); 
      Response.Buffer = true; 
      Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv"); 
      Response.Charset = ""; 
      Response.ContentType = "application/text"; 
      Response.Output.Write(csv); 
      Response.Flush(); 
      Response.End(); 

     } 

在此先感谢..

+1

CSV是一个文本文件...为什么你想要在一个文本文件中存储图片?看到类似的问题http://stackoverflow.com/questions/2333522/how-can-i-include-image-into-csv – Alex

回答

1

的问题是,你不能CSV文件中保存图像。您需要更改文件扩展名来执行此操作[例如.xls或.xlsx]。