Mam szablonu programu Excel z różnych arkuszy, do których jestem dumpingu danych pobranych z SQL Server przy użyciu OpenXML, C#. Po skończeniu zrzucaniem danych, muszę ukryć niektóre arkusze w zależności od warunków. Nie mogłem znaleźć żadnego kawałka kodu, aby ukryć konkretny arkusz za pomocą C# OpenXML.Jak ukryć arkusz w programie Excel przy użyciu języka OpenXML C#?
Próbowałem następujących czynności, ale arkusze nie zostały ukryte.
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();
}
}
Poproś o pomoc w tej sprawie.
Dzięki.
dzięki. To zadziałało. :-) – Raghu
Próbowałem tego samego kodu, Przeminęło przez debugowanie każdej linii, wszystko działa dobrze. Ale po wykonaniu kodu. Po otwarciu arkusza pliku Excel nie ukrywał. Możesz mi pomóc? –
@NarendraKumar: Bardzo trudno jest uzyskać pomoc, nie znając dokładnej struktury dokumentu Excel i nazw arkuszy programu Excel. Ile masz arkuszy? – Hans