Ich habe eine Excel-Vorlage mit verschiedenen Blättern, auf denen ich Daten aus SQL Server mit OpenXML, C# abladen. Nachdem ich mit dem Dumping der Daten fertig bin, muss ich einige der Blätter basierend auf den Bedingungen ausblenden. Ich konnte keinen Code finden, um ein bestimmtes Blatt mit C# OpenXML auszublenden.Wie blende ich ein Blatt in Excel mit OpenXML C#?
Ich versuchte folgendes, aber die Blätter wurden nicht versteckt.
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();
}
}
Hilfe anfordern.
Danke.
Vielen Dank. Das hat funktioniert. :-) – Raghu
Ich habe den gleichen Code versucht, durch Debugging jeder Zeile gegangen, alles funktioniert gut. Aber nach der Ausführung des Codes. Wenn ich das Excel-Dateiblatt öffne, habe ich nicht versteckt. Kannst du mir helfen? –
@NarendraKumar: Es ist sehr schwierig zu helfen, ohne die genaue Struktur Ihres Excel-Dokuments und die Namen Ihrer Excel-Tabellen zu kennen. Wie viele Blätter hast du? – Hans