5
OpenXML、C#を使用してSQL Serverから取得したデータをダンプするさまざまなシートを含むExcelテンプレートがあります。 データをダンプした後、条件に基づいてシートの一部を非表示にする必要があります。 C#OpenXMLを使用して特定のシートを隠すコードが見つかりませんでした。OpenXML C#を使用してExcelでシートを非表示にする方法は?
私は以下を試しましたが、シートが隠されていませんでした。
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();
}
}
これについてのヘルプをリクエストしてください。
ありがとうございました。
どうもありがとうございました。これはうまくいった。 :-) – Raghu
私は同じコードを試しました、各行のデバッグを通して、すべてがうまくいきます。しかし、コードの実行後。 Excelファイルシートを開いたときに隠れていませんでした。手伝って頂けますか? –
@ NarendraKumar:Excel文書の正確な構造とExcelシートの名前を知らなくても、助けが非常に困難です。何枚持っていますか? – Hans