J'ai un programme qui lit et interprète certains files de rapport Excel simples. Les files sont à la fois des extensions xls et xlsx.
J'ai d'abord converti le file en stream:
FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.ReadWrite);
alors, pour le xlsx:
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream).
pour xls:
IExcelDataReader excelReader = Excel.ExcelReaderFactory.CreateBinaryReader(stream);
Les files xls d'un programme tiers peuvent être ouverts par mon programme Excel MS Office 2013 , alors que mon programme C # affiche une erreur lors de la phase d'émission .
J'ai regardé dans le file et j'ai découvert que bien que MS Excel puisse l'ouvrir, il n'a pas l'en-tête Excel standard. Cliquez pour les files joints .
Si je sauvegarde le file comme Excel xls, il est converti en file Excel normal et peut être ouvert par mon lecteur C # stream et manipulé comme je le souhaite.