OpenXML、C# を使用して SQL Server から取得したデータをダンプするさまざまなシートを含む Excel テンプレートがあります。データのダンプが完了したら、条件に基づいて一部のシートを非表示にする必要があります。C# OpenXML を使用して特定のシートを非表示にするコードが見つかりませんでした。
以下を試してみましたが、シートが隠れませんでした。
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();
}
}
これについて助けを求めてください。
ありがとう。