2009-12-01 69 views
11

Tengo una aplicación C# donde estoy creando numerosos archivos Excel a partir de los datos en una base de datos. Esta parte está funcionando bien. Sin embargo, mi usuario preguntó si la pestaña de la hoja podría modificarse para reflejar un campo de la base de datos. Esto suena simple, sin embargo, cuando intento restablecer el nombre, me dice que es de solo lectura y no se puede configurar. He intentado lo siguiente y no ha funcionado:Cómo cambio el nombre de la hoja de C# en una hoja de cálculo de Excel

xlApp.Sheets[0].Range["A1"].Value = "NewTabName"; 

También probamos:

xlApp.Name = "NewTabName"; 

Yo búsqueda en Google y vi algunos otros métodos que no funcionan para mí también. Y algunas respuestas indicaron que es de solo lectura y no se pudo hacer.

Esto parece algo que debería ser simple. Cómo puedo hacerlo.

Respuesta

22

Debe tener acceso a la hoja de trabajo real. Pruebe algo como:

Microsoft.Office.Interop.Excel.Worksheet worksheet = (Worksheet)xlApp.Worksheets["Sheet1"]; 
    worksheet.Name = “NewTabName”; 
+0

Esto funcionó muy bien. Muchas gracias. –

+1

¡Funcionó como un amuleto, gracias! ... espera ... ¿realmente funcionan los encantos? ... – Lukas

+0

¡Esto es incorrecto! ¡Sheet1 no existirá si el cliente tiene una versión diferente de Language! Por ejemplo, en polaco, esta cadena sería "Arkusz1" en lugar de Sheet1 –

Cuestiones relacionadas