Bloccare le colonne in EPPlus (una funzione di divisione di Excel)

Ho lavorato molto con EPPlus per generare file Excel per il numero di esportazioni che il mio progetto mi richiede di fare. La maggior parte delle esportazioni che vogliono tendono a combaciare perfettamente con le esportazioni che hanno già nel suo sistema legacy. Uno di loro, tuttavia, vuole diverso. Vogliono che appaia esattamente come una delle esportazioni dal sistema legacy dopo aver apportato alcune modifiche tipiche e specifiche .

Alcune delle modifiche apportate, tuttavia, rendono ogni riga molto più lunga di quanto vogliono, quindi vogliono mantenere alcune delle informazioni della colonna bloccate sullo schermo mentre il resto delle colonne può essere scostato come normale (cioè la funzione di divisione di Excel). Ho provato a bloccare le colonne con ws.Column(6).Style.Locked = true , ma non sembra funzionare. Ho anche provato a impostare la proprietà Locked di un intervallo di celle su true ma non ha funzionato.

Come posso bloccare le colonne in posizione?

Risulta che EPPlus ha una funzione integrata per farlo sull’object Worksheet stesso chiamato FreezePanes . Questa funzione ha 2 parametri, che sono entrambi int : Riga e Colonna. In questo modo si congelano le righe o le colonne che si desidera bloccare in posizione durante la visualizzazione del foglio di lavoro.

Uno degli esempi sul sito Web di EPPlus lo utilizza, sebbene non sia l’objective principale dell’esempio / Quell’esempio può essere trovato qui .

C’è un trucco con questa funzione che dovresti sapere, però: il numero che usi per il parametro riga o colonna è in realtà la prima colonna che NON è congelata sul posto . In altre parole, se si desidera bloccare le prime 5 colonne, è necessario effettuare la seguente chiamata:

ws.View.FreezePanes(1,6) (Dove 6 è la prima colonna che non è congelata)

Ho capito che quando si utilizza il suggerimento di @ IronMan84, se si è interessati solo alla riga ma non alla colonna. Puoi usare

 ws.View.FreezePanes(3, 1); // (Freeze Row 2 and no column)