Ya hice una búsqueda aquí en SO, en this, this, this y más, pero no tengo ni idea, así que tendré que preguntarles chicos.¿Cómo verificar si un archivo es una hoja de cálculo Excel válida?
Estoy tratando de abrir un archivo de Excel a través de Interop, y tengo Office 2007 instalado, entonces estoy usando Microsoft.Office.Interop.Excel
versión 14.0
.
Cuando intento abrir un archivo válido xls
, todo funciona bien.
Pero si intento abrir un archivo no válido (como un mapa de bits o un ejecutable) a través de Interop, Excel lo abre sin quejarse ni advertir.
¿Cómo puedo detectar que Excel tiene cargado un archivo de libro no válido, sin bloquear con una alerta?
Estoy tratando de escribir una prueba unitaria de mi lector de objetos de Excel. Uno de los casos es tratar de abrir un archivo no válido.
algo de código para ayudar: aplicación de creación:
_app = new Application()
{
Visible = false,
DisplayAlerts = false, // <-- I don't want to remove this.
AskToUpdateLinks = false,
};
libro de apertura:
_workbooks.Open(filename);
_workbook = _workbooks.get_Item(1); // 1-based.
_worksheets = _workbook.Sheets;
EDIT: sólo para añadir 1 más información: Excel carga el archivo no válido. Si DisplayAlerts
se establece en true, se queja (abrir un cuadro de diálogo) informar el libro parece estar dañado, pero si DisplayAlerts
se establece en false, se carga el archivo tal y como a continuación:
verificación de un sentido válido para archivos ext .csv o xls parece ser el enfoque más simple ... – MethodMan
Puede ver si la propiedad _app.Ready pasa a ser falso al cargar un archivo no válido. Solo un pensamiento, no lo he probado. – Tod
@DJ KRAZE, ya compruebo la extensión antes de cargar el archivo. Pero, ¿qué pasa si alguien cambia la extensión del archivo e intenta cargar un .exe en su lugar? – Machado