Cambiar de nombre a hoja de exel

Buenas tardes

tengo un problema estoy haciendo un bot con cartes que tiene que cambiar el nombre de la hoja del libro de exel al hacer la captura no identifica la pestaña para proporcionar un valué que me recomiendan les agradezco su colaboración

Hola @yessid, usa el ActiveX del Excel. No te compliques tanto. ¿Usas C#, vb…?

Hola uso c# cuáles el active x de exel?

@yessid, te dejo este código en C# para recorrer una hoja Excel, La clase Excel._Worksheet tiene la propiedad name.

using Excel = Microsoft.Office.Interop.Excel;

        Excel.Application excel;
        Excel.Workbook xlWorkbook;
        Excel._Worksheet xlWorksheet;
        Excel.Range xlRange;
        int rowCount, colCount;
        int colEmail = - 1;


        excel = new Excel.Application();
        try
        {
            excel.Visible = true;
            xlWorkbook = excel.Workbooks.Open(fichero);
            xlWorksheet = xlWorkbook.Sheets[1];
            xlRange = xlWorksheet.UsedRange;
            rowCount = xlRange.Rows.Count;
            colCount = xlRange.Columns.Count;
            // Localizo las columnas que me interesan
            for (int j = 1; j <= colCount; j++)
            {
                if (((string)xlRange.Cells[1, j].Value).ToLower() == "email.".ToLower()) colEmail = j;
            }
            if (colAutorizacion > 0)
            {
                for (int i = 1; i <= rowCount; i++)
                {
                    // tu codigo
                }

            }
            xlWorkbook.Close();
        }
        finally
        {
            excel.Quit();
        }

Dinos si te sirvió.

@yessid, @xavier, bien está hacerlo con el ActiveX de Excel. Para eso Microsoft lo creó, pero no es necesario hacer algo tan simple con C#. @yessid, puedes usar Cartes Script para renombrar la hoja. En Cartes Script dispones de la clase Excel:

$excl = new Excel;
$excel.load(“C:…xlsx”, false);
$excel.renamesheet(“sheet2”, “Nuevo”);
$excel.save;

@xavier, @yessid para usar el ActiveX de Excel en C# debes incluir en el proyecto la referencia al COM de Excel: Microsoft.Office.Interop.Excel

@yessid, estoy con @xavier. Hay cosas que son muy sencillas de programar. No te compliques programándolas a través de su interfaz gráfica. ¡Esta de renombrar son 3 líneas de código! Acostúmbrate a buscar información sobre los ActiveX. Todas las aplicaciones de MS Office, OpenOffice… tienen.

Un saludo

@RpaTeam y @xavier muchas gracias por su ayuda me sirvió mucho , pude replicar el codigo de cartes en c# muchas gracias

este es el codigo por si alguien se le presenta el mismo problema saludos

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = excel.Workbooks.Open(@“C:…xlsx”);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Worksheet)wb.Worksheets[“nombre pagina”];
worksheet.Name = “nombre nuevo” ;
wb.Save();
wb.Close();

1 Like