Blocca riquadri in Excel utilizzando C# e EPPlus

Voglio congelare le prime 5 colonne e tre righe in excel.
Ho scritto il seguente codice per che

Worksheets.View.FreezePanes(5, 5);

ma si blocca colonne nelle prime 4 righe anche.
Voglio congelare prime 4 colonne in excel, tranne nelle prime 4 righe.
È possibile fare?

  • Non sono sicuro di comprendere appieno ciò che si sta cercando di fare. Stai dicendo che si desidera bloccare dalla riga 5 e giù? Così, quando si scorrere verso destra celle A1 al D4 non sono congelati? È questo qualcosa che si può anche fare in Excel?

 

4 Replies
  1. 42

    Il primo valore è per il numero di righe che si desidera bloccare, e il secondo è per il numero di colonne che si desidera bloccare. Pertanto, per congelare le prime 3 righe e 5 colonne, si avrebbe bisogno di chiamarlo come il seguente:

    Worksheets.View.FreezePanes(3, 5);

    Si può anche dare un’occhiata al questa domanda COSÌ per ulteriori informazioni su FreezePanes.

    • Al momento attuale, zero fila in alto avrebbe in qualche modo disabilitare scorrimento orizzontale.
  2. 20

    Per me per bloccare la prima riga di codice riportato di seguito lavorato. Io non sono sicuro di quello che è la logica c’.

     worksheet.View.FreezePanes(2,1);
    • SÌ. sheet.View.FreezePanes(6, 1); congelato le prime 5 righe per me.
    • Sto assumendo devi aggiungere uno per il numero di frozen righe/colonne perché Excel non funziona allo stesso modo. Per bloccare la prima riga in Excel, è necessario selezionare il primo due righe (non mi chiedete il perchè)
    • perché (in excel così come in epplus) è necessario indicare la cella che rappresenta l’angolo superiore sinistro dell’area congelata. Sostanzialmente stai dicendo: “ok, questa è la prima cella superiore sinistra dell’area scorrevole; tutte le cellule di cui sopra sono considerati intestazioni di colonne, e tutte le celle a sinistra sono considerati righe intestazioni”
    • wow, hai ragione! Ho appena provato, e in Excel, si possono anche congelare una riga selezionando solo la riga di sotto di essa, non sia. Non avevo idea. Grazie per la spiegazione
  3. 8

    Dal ExcelWorksheet oggetto, l’accesso al Vista proprietà.

    Restituito ExcelWorksheetView oggetto, chiamare FreezePanes(riga, colonna) metodo, passaggio di riga e di colonna della prima cella che NON è congelato.

    Per esempio, di congelare i primi due riquadri di Foglio di lavoro di Excel, si avrebbe bisogno di passare nella colonna (3,1) alla riga parametro:

    worksheetObject.View.FreezePanes(3, 1);

    Così Congelare solo la prima riga completamente ora è possibile chiamare worksheetObject.View.FreezePanes(2,1); solo!

    Questo è anche detto ufficiale di Esempio di EPPlus.

    Quindi per rispondere alla domanda originale sollevato da @user2148124 la risposta dovrebbe essere

    worksheetObject.View.FreezePanes(3, 5);
    • E quando si entra in FreezePanes(1,1) o del parametro a 0, File di Excel che si rompono, che ci dice di Excel che si tenta di eseguire la riparazione (e, naturalmente, non sempre Congelare per lavoro).
    • Ogni plugin open source, hanno alcune limitazioni o altro. Se potete suggerire qualche alternativa migliore, poi fammi sapere
    • Mi è stato appena completato il tuo scopo, che è molto utile, non criticare il Quadro. 😀
  4. -5

    È possibile richiamare foglio.FreezePanes(int indicerighe, int columnIndex) metodo per impostare la zona di congelamento.

    Esempio Di Codice:

    using System;
    using Spire.Xls;
    using System.Drawing;
    
    namespace FreezePane
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load File
                Workbook workbook = new Workbook();
                workbook.LoadFromFile
                    (@"E:\Work\Documents\ExcelFiles\UserInfo.xlsx");
                Worksheet sheet = workbook.Worksheets[0];
    
                //Freeze Top Row
                sheet.FreezePanes(2, 1);
    
                //Save and Launch
                workbook.SaveToFile("FreezePane.xlsx", ExcelVersion.Version2010);
                System.Diagnostics.Process.Start(workbook.FileName);
            }
        }
    }
    • Penso che OP ha chiesto esplicitamente di circa EPPlus, non Spire.Xls.

Lascia un commento