Ho un modello di Excel con vari fogli a cui sto scaricando i dati recuperati da SQL Server usando OpenXML, C#. Dopo aver finito con il dumping dei dati, ho bisogno di nascondere alcuni dei fogli in base alle condizioni. Non ho trovato alcun pezzo di codice per nascondere un particolare foglio usando C# OpenXML.Come nascondere un foglio in Excel usando OpenXML C#?
Ho provato quanto segue ma i fogli non sono stati nascosti.
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();
}
}
Richiedi assistenza su questo.
Grazie.
Grazie mille. Questo ha funzionato. :-) – Raghu
Ho provato lo stesso codice, passato attraverso il debug di ogni riga, tutto funziona bene. Ma dopo l'esecuzione del codice. Quando apro il foglio di file Excel non ho nascosto. Mi potete aiutare? –
@NarendraKumar: È molto difficile aiutare senza conoscere l'esatta struttura del documento Excel e i nomi dei fogli Excel. Quanti fogli hai? – Hans