Pregunta

¿Alguien sabe cómo sólo tiene que abrir y cerrar un libro de Excel?

No necesito leer los datos desde el archivo, sólo hay que abrir y cerrarla. (*)

supongo que voy a tener que hacer referencia al ensamblado Microsoft.Office.Interop.Excel.


* Motivo: Yo ya he configurado datos de esta tabla pivote con una biblioteca tercera parte (Aspose). Ahora tengo que leer la tabla dinámica generada.

Por desgracia, la biblioteca Aspose no puede generar la tabla dinámica en tiempo de ejecución. Se necesita a alguien que abrir el archivo con Excel por lo que Excel puede generar los valores de la tabla pivote.

¿Fue útil?

Solución

tras hacer referencia también Microsoft.Office.Interop.Excel Asegúrese de limpiar en el fin.

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);


        }

Otros consejos

Una búsqueda rápida en Google me da este proyecto de código en:

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

Considere el uso de System.Diagnostics.Process para iniciar, supervisar y cierre Excel. Este sitio ofrece una buena introducción: http://www.thescarms.com/dotnet/Process.aspx , como correr con una ventana invisible y el envío de la entrada a la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top