none
Insertar imagen en archivo excel desde ASP.NET

    Question

  •  

    Buen Dia a todos..

     

    En mi aplicacion genero un reporte que se ve en el navegador, necesito que al pulsar un boton, mi aplicacion pueda mostrar el mismo reporte en excel.

     

    Hasta ahora logro escribir en un archivo de excel pero mi reporte contiene imagenes las cuales no he podido insertar en el template de excel que luego quiero salvar como un nuevo archivo de excel.

     

    Sabe alguien como insertar una imagen en excel desde asp.NET?? (estoy codificando en C#),

    utilizo

    Microsoft.Office.Interop.Excel

     

    He  intentado lo siguiente sin resultado:

     

    System.Globalization.CultureInfo Old_Culture = System.Threading.Thread.CurrentThread.CurrentCulture;

    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

    //System.Threading.Thread.CurrentThread.SetApartmentState(System.Threading.ApartmentState.MTA);

     

    Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application();

    Microsoft.Office.Interop.Excel.Workbook oBook;

    Microsoft.Office.Interop.Excel.Worksheet oSheet;

    Microsoft.Office.Interop.Excel.Workbooks oBooks;

    Microsoft.Office.Interop.Excel.Sheets oSheets;

    Microsoft.Office.Interop.Excel.Range oCells;

    Microsoft.Office.Interop.Excel.Picture oPicture;

    Microsoft.Office.Interop.Excel.Pictures oPictures;

    object oMissing = System.Reflection.Missing.Value;

     

    string sFile = Server.MapPath(Request.ApplicationPath) + "\\myExcel.xls";

    string sTemplate = Server.MapPath(Request.ApplicationPath) + \\myTemplate.xls;

     

    //Abre la plantilla:

    oBooks = oExcel.Workbooks;

    oBooks.Add(Server.MapPath(Request.ApplicationPath) + "/MyTemplate.xlt");

    //Selecciona la hoja a la que queremos exportar:

    oBook = oBooks.get_Item(1);

    oSheets = oBook.Worksheets;

    oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oSheets.get_Item(1);

     

    //Le da un nombre

    oSheet.Name = "First Sheet";

    oCells = oSheet.Cells;

     

    //*************************

    // dump data here

    //------------------------

    Image imagen = new Image();

    imagen.ImageUrl = "header.jpg";

     

    oPictures = (Microsoft.Office.Interop.Excel.Pictures) oSheet.Pictures(oMissing);

    oPictures.Insert(imagen.ImageUrl);// aqui deberian ir 2 parametros, pero no tengo idea del otro

     

    Microsoft.Office.Interop.Excel.Range range = oSheet.get_Range("C3", "C3");

    //Copy the barcode image into Clipboard

    //System.Threading.Thread.CurrentThread.SetApartmentState(System.Threading.ApartmentState.STA);

    System.Windows.Forms.Clipboard.SetDataObject(imagen);

    //Paste the barcode image

    range.Select();

    //oSheet.Copy((object)imagen, (object)imagen);

    oSheet.Paste(oMissing, oMissing);

    //*************************

     

    oSheet.SaveAs(sFile, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

    System.Diagnostics.Process.Start(Server.MapPath(Request.ApplicationPath) + "\\myExcel.xls");

     

     

    Mil Gracias!!

    Friday, August 24, 2007 5:22 PM

All replies

  • Hola estoy tratando de insertar fotos en un reporte, en mi maquina funciona, pero cuando lo publico en el servidor no... parece como colgado... aqui es donde se traba.... alguien sabe que me esta faltando?

    oSheet.Shapes.AddPicture(rPathFotos & Codigo &

    ".jpg", Core.MsoTriState.msoFalse, Core.MsoTriState.msoTrue, 5, intFoto, 75, 100)

    Saludos.

    VMA Peru

    Friday, October 09, 2009 8:44 PM
  • eso es porque tienes que subir la imagen tambien al el servidor  
    Friday, June 18, 2010 5:50 PM
  • hola ,

    que tal amigo  todavia persiste tu problema   ??

     

    enmanuel grullard

    republica dominicana

     

    Sunday, June 20, 2010 10:17 PM
    Moderator