Как динамически заморозить панель внутри sheetview во время выполнения, используя open xml? - PullRequest
0 голосов
/ 05 июля 2019

Я создаю документ Excel, используя Open XML sdk. При его создании я должен передать номер строки ( iFreezePaneRowNumber ) до того места, где я хочу, чтобы моя панель оставалась замороженной внутри вида листа. Однако в моем случае у меня нет предварительных знаний о номере строки, и он рассчитывается только тогда, когда я начинаю записывать данные в Excel. Есть ли способ, которым я могу изменить свойство VerticalSplit объекта Pane или есть какой-нибудь лучший подход?

oXMLWriter.WriteStartElement(new SheetViews());
oXMLWriter.WriteStartElement(new SheetView() { TabSelected = true, WorkbookViewId = (UInt32Value)0U });
oXMLWriter.WriteStartElement(new Pane() { ActivePane = PaneValues.BottomLeft, State = PaneStateValues.Frozen, TopLeftCell = sFreezeCell, VerticalSplit = iFreezePaneRowNumber });
oXMLWriter.WriteEndElement();
oXMLWriter.WriteStartElement(new Selection() { Pane = PaneValues.BottomLeft });
oXMLWriter.WriteEndElement();
oXMLWriter.WriteEndElement();
oXMLWriter.WriteEndElement();
...