Come rinominare un foglio di excel nome dinamicamente in C#

Ho creato una cartella di lavoro di excel con più fogli come foglio1, foglio2, ecc… Come posso rinominare questi i nomi delle schede in modo dinamico in C#?

 

2 Replies
  1. 14

    Non spedify come hai accesso a file di excel. Tuttavia, l’esempio da qui potrebbe essere utile per voi, se si sta utilizzando Microsoft.Office.Interop.Excel. Nota che apre il primo foglio del file, la riga: (Worksheet)xlBook.Worksheets.get_Item(1)

    using Excel = Microsoft.Office.Interop.Excel; 
    
        object oMissing = System.Reflection.Missing.Value;
        Excel.ApplicationClass xl=new Excel.ApplicationClass();
            Excel.Workbook xlBook;
            Excel.Worksheet xlSheet;
            string laPath = Server.MapPath(@"\excel\xl_table.xls");
            xlBook = (Workbook)xl.Workbooks.Open(laPath,oMissing,
              oMissing,oMissing,oMissing ,oMissing,oMissing,oMissing
             ,oMissing,oMissing,oMissing,oMissing,oMissi ng,oMissing,oMissing);
            xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
            xlSheet.Name = "CIAO";
            xlBook.Save();
            xl.Application.Workbooks.Close();
    • sì…super cool…che dire di altri fogli?2 ° e 3 ° foglio così via?
    • Per rinominare tutti i fogli avvolgere queste 2 righe che ho un ciclo: for (int i = 1; i < xlBook.Worksheets.Count; i++) { xlSheet = (Worksheet)xlBook.Worksheets.get_Item(i); xlSheet.Name = "CIAO"+i; }
    • Si dovrebbe usare Excel.Application xl = new Excel.Application(); invece di Excel.ApplicationClass xl = new Excel.ApplicationClass(); per evitare l’errore di compilazione “Interoperabilità tipo di ‘Microsoft.Office.Di interoperabilità.Excel.ApplicationClass’ non possono essere incorporati. Utilizzare applicabile interfaccia, invece.” Più che altro funziona come previsto.
  2. 5

    Una breve nota:
    Se non hai bisogno di specificare, è possibile sbarazzarsi di tutti questi parametri opzionali e utilizzare la forma abbreviata:

    xlBook = (Workbook)xl.Workbooks.Open(laPath);

    Riguarda,
    Jörg

Lascia un commento