none
No se combinan celdas Interop.Excel Merge() RRS feed

  • Pregunta

  • Saludos, intento combinar celdas a traves de la libreria de Interop.Excel. Sucede que al aplicar el Merge (true/false)solo borra las lineas intermedias, pero las celdas siguen siendo independientes, no se combinan en realidad en una sola celda, ejecute una macro en Microsoft Excel para ver el codigo generado en VB, pero al replicarlo en C# da el mismo resultado. ¿Cual sera el problema?...Este es el codigo:
    hoja.Cells[15,1]="proyecto";
                    Range r1 = hoja.get_Range("A15",Type.Missing);
                    r1.Select();
                    r1.FormulaR1C1 = "ivan";
                    Range r = hoja.get_Range("A15:C15",Type.Missing);
                    r.Select();
                    r.Font.ColorIndex = 5;
                    r.Font.Bold = true;
                    //with selection
                    r.HorizontalAlignment = Constants.xlCenter;
                    r.VerticalAlignment = Constants.xlBottom;
                    r.WrapText = false;
                    r.Orientation = 0;
                    r.AddIndent = false;
                    r.IndentLevel = 0;
                    r.ShrinkToFit = false;
                    //r.ReadingOrder = Constants.xlRTL;-->El sistema No me permite asignar esta constante
                    r.MergeCells = false;
                    r.Merge(false);
    martes, 13 de diciembre de 2011 18:51

Respuestas

  • solo aparece la selección de las 3 celdas, y el valor en la primer celda

    que seria esa seleccion de 3 celdas ?

    o sea si seleccionas sea seccion se marca las 3 como una sola ? porque si es asi ese es el mergue

    solo el valor de la primer celda persiste

     

    o es que esperabas un merge de texto, de contenido? porque nomes ais como funciona, es mas aplcia esto desde le propio excel para validar el resultado

     

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 13 de diciembre de 2011 19:50

Todas las respuestas

  • hola

    pero alli estas indicando que no realice el merge, porque tanto MergeCells como Merge() lo defines en false

    si quieres usar el mergue porque solo no haces

    r.MergeCells = true;

     

    o el metodo

    NamedRange.Merge (Método)

     

    pero defien uno de los dos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 13 de diciembre de 2011 18:58
  • Si, de hecho igual lo he verificado colocando bool true en el merge, pero me da los mismos resultados. Desconozco si debe llevar o no antes del merge la propiedad MergeCells, aun asi, los resultados son los mismos y al verificar el xls, las celdas en realidad no se combinaron, solo desaparecieron las celdas intermedias...¿?

    Lo intente igual de esta forma:

     Range r = hoja.get_Range("A15","C15");

                    r.Select();

                    r.MergeCells = false;

                    r.Merge(true);

    martes, 13 de diciembre de 2011 19:05
  • hola

    y si solo usas

    Range r = hoja.get_Range("A15","C15");

     r.Select();

    r.MergeCells = true;

     

    y nada mas


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 13 de diciembre de 2011 19:14
  • Si uso solo MergeCells como comentas Leandro no hace nada en realidad, solo aparece la selección de las 3 celdas, y el valor en la primer celda, desconozco si tenga algo que ver con la libreria de interop en c# pero dudo que sea algo asi, lo curioso es que no logro conseguir la funcionalidad tal cual se hace en el propio excel de Combinar y Centrar celdas.. uso VS 2008, y estoy probando con office 2010
    martes, 13 de diciembre de 2011 19:23
  • solo aparece la selección de las 3 celdas, y el valor en la primer celda

    que seria esa seleccion de 3 celdas ?

    o sea si seleccionas sea seccion se marca las 3 como una sola ? porque si es asi ese es el mergue

    solo el valor de la primer celda persiste

     

    o es que esperabas un merge de texto, de contenido? porque nomes ais como funciona, es mas aplcia esto desde le propio excel para validar el resultado

     

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 13 de diciembre de 2011 19:50
  • Me refiero a que las 3 celdas aparecen seleccionadas, debido al select(), pero siguen siendo celdas independientes NO una sola, en realidad espero que las 3 celdas se combinen en una sola y su contenido se autoajuste. como seria un merge de contenido?, yo pensaba que el merge hacia esto de forma predeterminada.

     

    Lo curioso es que si hago el merge en una sola fila las lineas intermedias desaparecen pero las celdas siguen independientes. Si aplico el merge sobre varias celdas en varias filas, las lineas intermedias NO desaparecen y nunca se combinan. Creo que este comportamiento viene debido a la libreria interop. 

    De antemano Grax, seguiré investigando...

    martes, 13 de diciembre de 2011 19:58
  • hola

    y si solo usas

    Range r = hoja.get_Range("A15","C15");

     r.Select();

    r.MergeCells = true;

     

    y nada mas


    Leandro Tuttini


    Buenos Aires
    Argentina

    Funciona Correcto lo de Leandro Tuttini, salvandome por segunda vez. Gracias Leandro...

    un codigo Extra.. q tb sirve:

                xlWorkSheet.get_Range("b2", "e3").Merge(false);
                chartRange = xlWorkSheet.get_Range("b2", "e3");
                chartRange.FormulaR1C1 = "MARK LIST";
                chartRange.HorizontalAlignment = 3;
                chartRange.VerticalAlignment = 3;
                chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow  );
                chartRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
                chartRange.Font.Size  = 20;

    martes, 20 de enero de 2015 16:19
  • Gracias por ese aporte.
    Pregunta de donde es el chartRange?

    Me ayudan tengo que hacer que combine unas celdas pero me perdí 

    Espero puedan colaborarme.
    Gracias

    miércoles, 22 de agosto de 2018 17:36
  • Hola Leandro Tuttini, 

    Estaba buscando algo como la combinación de las celdas, pero con lo que he leído no lo he entendido a la perfección, podrías ayudarme con la situación, tengo esto que quiero combinar desde C# 

    Tengo que hace la combinación de la celda marcada en amarillo y la de Información....
    Pero no comprendo como realizarlo. 
    Espero puedas ayudarme, gracias.

    miércoles, 22 de agosto de 2018 18:11