Tengo una plantilla de Excel con varias hojas a las que estoy descargando datos recuperados de SQL Server usando OpenXML, C#. Después de terminar con los datos, necesito ocultar algunas de las hojas según las condiciones. No pude encontrar ningún fragmento de código para ocultar una hoja en particular usando C# OpenXML.¿Cómo ocultar una hoja en Excel usando OpenXML C#?
Intenté lo siguiente, pero las hojas no se ocultaron.
byte[] byteArray = File.ReadAllBytes("D:\\rptTemplate.xlsx");
using (MemoryStream mem = new MemoryStream())
{
mem.Write(byteArray, 0, (int)byteArray.Length);
using (SpreadsheetDocument rptTemplate = SpreadsheetDocument.Open(mem, true))
{
foreach (OpenXmlElement oxe in (rptTemplate.WorkbookPart.Workbook.Sheets).ChildElements)
{
if(((DocumentFormat.OpenXml.Spreadsheet.Sheet)(oxe)).Name == "ABC")
((DocumentFormat.OpenXml.Spreadsheet.Sheet)(oxe)).State = SheetStateValues.Hidden;
}
rptTemplate.WorkbookPart.Workbook.Save();
}
}
Solicite ayuda sobre esto.
Gracias.
muchas gracias. Esto funcionó. :-) – Raghu
Intenté el mismo código, Pasé por la depuración de cada línea, todo funciona bien. Pero después de la ejecución del código. Cuando abro la hoja de archivo de Excel no se escondió. ¿Me puedes ayudar? –
@NarendraKumar: Es muy difícil ayudar sin conocer la estructura exacta de su documento de Excel y los nombres de sus hojas de Excel. ¿Cuántas hojas tienes? – Hans