Uno de mis usuarios tiene un problema al intentar abrir un archivo de Excel a través de mi aplicación C#.C# y Excel interop
Todo funciona bien cuando lo ejecuto desde mi máquina y funciona para otros usuarios. No soy un experto en interoperabilidad de Excel, así que espero que ustedes puedan ayudarme.
Así es cómo se ha configurado:
he añadido una referencia a mi aplicación a Microsoft.Office.Interop.Excel.dll, versión 10.0.4504.0 (que creo que es Excel 2002). En mi máquina He instalado Excel 2007. En mi código intento abrir una hoja de trabajo de esta manera:
using Microsoft.Office.Interop
...
Microsoft.Office.Interop.Excel.ApplicationClass _excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = _excelApp.Workbooks.Open(workbookPath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", false, false, 0, true, false, false);
Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(1);
que registra la versión usuarios como Excel 9.0 (que es de 2000). El error que obtiene el usuario es:
Exception='System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
Parece que el libro de trabajo no se puede abrir. El archivo se confirmó que existía y estaba suelto en la PC del usuario en C :. Pensé que al usar el PIA no tendría que preocuparme por los problemas de la versión de Excel. Sé que hay otros usuarios que usan Excel 2000, y funciona en mi máquina de desarrollo.
¿Alguna idea? Tal vez mis llamadas para abrir el archivo de Excel deberían cambiarse? Lo desafortunado es que no puedo reproducirlo.
favor ayuda wiht esto si u puede http://stackoverflow.com/questions/9962157/safely-disposing-of-an-object-using-c-sharp/ –