web-dev-qa-db-fra.com

Erreur lors de la tentative de lecture d'un fichier .xls à l'aide d'EPPlus

Le code suivant fonctionne correctement pour .xlsx, mais il ne fonctionne pas pour .xls. J'ai ce message d'erreur

Impossible d'ouvrir le paquet. Le package est un OLE document composé. S'il s'agit d'un package crypté, veuillez fournir le mot de passe

Code

string filepath = txtBrowse.Text;

FileStream stream = System.IO.File.Open(filepath, FileMode.Open, FileAccess.ReadWrite);
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);

FileInfo newFile = new FileInfo(filepath);

using (ExcelPackage package = new ExcelPackage(newFile))
{
    string sheetName = System.DateTime.Now.ToShortDateString();

    foreach (OfficeOpenXml.ExcelWorksheet sheet in package.Workbook.Worksheets)
    {
        // Check the name of the current sheet
        if (sheet.Name == sheetName)
        {
            package.Workbook.Worksheets.Delete(sheetName);
            break; // Exit the loop now
        }
    }

    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(System.DateTime.Now.ToShortDateString());
}

Comment dois-je procéder correctement?

11
user3151262

EPPlus ne fonctionne pas avec le format XLS. Uniquement XLSX. Vous devrez trouver une nouvelle bibliothèque.

25
Cory Nelson

J'ai utilisé avec succès la réponse de Tony https://stackoverflow.com/a/18904633/306515 et simplement la convertir à l'aide de Microsoft.Office.Interop.Excel et je peux toujours utiliser epplus

4
ajwaka