Domanda

Qualcuno sa come aprire semplicemente e chiudere una cartella di lavoro di Excel?

Non ho bisogno di leggere i dati dal file, ho solo bisogno di aprire e chiudere. (*)

Sto indovinando che avrò bisogno di fare riferimento all'assemblea Microsoft.Office.Interop.Excel.


* Motivo: Ho già configurato le informazioni tabella pivot con una libreria 3rd party (Aspose). Ora ho bisogno di leggere la tabella pivot generato.

Purtroppo, la libreria Aspose non può generare la tabella pivot in fase di esecuzione. Ha bisogno di qualcuno che aprire il file con Excel in modo che Excel può generare i valori della tabella pivot.

È stato utile?

Soluzione

dopo riferimento Microsoft.Office.Interop.Excel anche fare in modo di ripulire la fine.

using Excel = Microsoft.Office.Interop.Excel;

        Excel.ApplicationClass _Excel;
        Excel.Workbook WB;
        Excel.Worksheet WS;

    try
        {

        _Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
        WB = _Excel.Workbooks.Open("FILENAME",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);

            //do something

        }
        catch (Exception ex)
        {
            WB.Close(false, Type.Missing, Type.Missing);

            throw;
        }
        finally
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);


        }

Altri suggerimenti

Un rapido Google mi dà questo progetto codice:

http://www.codeproject.com/KB/office/csharp_excel.aspx

Si consiglia di utilizzare System.Diagnostics.Process per avviare, monitorare e chiudere Excel. Questo sito offre una buona introduzione: http://www.thescarms.com/dotnet/Process.aspx , tra cui l'esecuzione di una finestra invisibile e l'invio di input ad esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top