Laden...

OpenXML SDK 2.0: Erste Zeile bei Exceldokument einfrieren

Erstellt von 1nf1n1ty vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.805 Views
1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 12 Jahren
OpenXML SDK 2.0: Erste Zeile bei Exceldokument einfrieren

verwendetes Datenbanksystem: keins

Hallo zusammen,

ich hoffe ich habe die richtige Kategorie erwischt. Für einen Export in eine Exceldatei verwende ich das OpenXML SDK 2.0 von MS. Ich hätte nun gerne, dass in meinem Export die erste Zeile fixiert ist, wenn ich also scrollen muss, soll die erste Zeile trotzdem immer sichtbar sein. Ich habe bereits über MSDN und google danach gesucht aber leider nichts passendes gefunden 😦 In Excel sind es eigentlich 2 Klicks, ich hätte aber gern das mein Export das von Haus aus macht.

Jemand eine Ahnung wie man das anstellt?

Viele Grüße

G
47 Beiträge seit 2011
vor 12 Jahren

Hi 1nf1n1ty,

dieser Code erstellt ein leeres Worksheet, in dem die erste Zeile eingefroren ist.
Der Knackpunkt dabei ist die Pane, die in die SheetView eingefügt wird.


            Worksheet worksheet1 = new Worksheet() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "x14ac" } };
            worksheet1.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
            worksheet1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
            worksheet1.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
            SheetDimension sheetDimension1 = new SheetDimension() { Reference = "A1" };

            SheetViews sheetViews1 = new SheetViews();

            SheetView sheetView1 = new SheetView() { TabSelected = true, WorkbookViewId = (UInt32Value)0U };
            Pane pane1 = new Pane() { VerticalSplit = 1D, TopLeftCell = "A2", ActivePane = PaneValues.BottomLeft, State = PaneStateValues.Frozen };
            Selection selection1 = new Selection() { Pane = PaneValues.BottomLeft, ActiveCell = "F8", SequenceOfReferences = new ListValue<StringValue>() { InnerText = "F8" } };

            sheetView1.Append(pane1);
            sheetView1.Append(selection1);

            sheetViews1.Append(sheetView1);
            SheetFormatProperties sheetFormatProperties1 = new SheetFormatProperties() { BaseColumnWidth = (UInt32Value)10U, DefaultRowHeight = 12.75D, DyDescent = 0.2D };
            SheetData sheetData1 = new SheetData();

            worksheet1.Append(sheetDimension1);
            worksheet1.Append(sheetViews1);
            worksheet1.Append(sheetFormatProperties1);
            worksheet1.Append(sheetData1);

            worksheetPart1.Worksheet = worksheet1;

Um auf diesen Code zu kommen, kannst du dir einfach ein Excel-Dokument erstellen, das die von dir gewünschte Form hat, und dann mit dem Open XML SDK Productivity Tool den Code dazu erstellen lassen (Reflect Code).

Gruß Gwinn