So blenden Sie ein Blatt in Excel mithilfe von OpenXML C#?
Ich habe eine Excel-Vorlage mit verschiedenen sheets, die ich bin dumping-Daten aus SQL Server mithilfe von OpenXML, C#.
Nachdem ich bin fertig mit Abladen der Daten, die ich brauche, um zu verbergen, einige der Blätter, die basierend auf Bedingungen. Ich konnte nicht finden, dass jedes Stück code zu verstecken, ein bestimmtes Blatt mit C# OpenXML.
Ich habe Folgendes versucht, aber die Blätter nicht ausgeblendet werden.
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 auf diese.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die
ActiveTab
Eigenschaft desWorkbookView
Klassezu einem index, der Verschieden von dem index des Arbeitsblattes Sie
gerne verstecken würde.
So, zum Beispiel, wenn Sie möchten, zu verbergen, dem ersten Arbeitsblatt (Arbeitsblatt mit index 0)
in Ihrer excel-Datei legen Sie dann die
ActiveTab
- Eigenschaft auf die nächste sichtbare Arbeitsblatt index.Hier ist ein kleines code-Beispiel (basierend auf dem code, den Sie zur Verfügung gestellt):