Errore all'apertura di file excel generato via codice

di il
4 risposte

Errore all'apertura di file excel generato via codice

Devo salvare dei dati su dei file excel e ho usato questo codice
            var dataInventory = **prendo i dati**
            string xml = String.Empty;
            XmlDocument xmlDoc = new XmlDocument();

            XmlSerializer xmlSerializer = new XmlSerializer(dataInventory.GetType());

            using (MemoryStream xmlStream = new MemoryStream())
            {
                xmlSerializer.Serialize(xmlStream, dataInventory);
                xmlStream.Position = 0;
                xmlDoc.Load(xmlStream);
                xml = xmlDoc.InnerXml;
            }

            var fName = string.Format("Inventario_-{0}.xls", DateTime.Now.ToString("s"));

            byte[] fileContents = Encoding.UTF8.GetBytes(xml);
            
            return File(fileContents, "application/vdn.ms-excel", fName);
E funziona anche benino, perché il file si genera. Il problema è che quando lo apro mi esce un errore del tipo
Il formato di file è diverso da quello indicato dall'estensione in Excel
E mi chiede se sono sicuro di voler continuare. Premo si e mi esce un altro pop up in cui mi dice se voglio aprire il file come
Tabella xml xml
o come cartella di lavoro condivisa o.o
o di usare riquadro attività Origine XML o.o

Comunque a questo punto se scelgo di aprirlo come tabella XML alla fine me lo apre in modo corretto.

C'è un modo per evitare questo genere di errori?

4 Risposte

  • Re: Errore all'apertura di file excel generato via codice

    In effetti così scrivi un file xml non un file excel xls.

    Devi usare una estensione xml ed excel non c'entra molto...
  • Re: Errore all'apertura di file excel generato via codice

    Ho provato scaricando delle nuget, tipo EPPLus e ClosedXML, ma ricevo sempre questo errore
    Non è possibile risolvere le dipendenze. 'EntityFramework 6.1.2' non è compatibile con 'EntityFramework.it 6.1.1 vincolo: EntityFramework (= 6.1.1)
    Sto cercando di capire che senso abbia, visto che in references ho la versione 6.0.0. Comunque non vorrei cambiare versione di entity perché temo di fare macello su un progetto non "mio". Ho anche provato a mettere versioni più vecchie di quelle librerie, ma nisba >_>
  • Re: Errore all'apertura di file excel generato via codice

    Ma che c'entra Entity? Stiamo parlando del fatto che crei un file XML e gli dai una estensione xls che non c'entra nulla.
  • Re: Errore all'apertura di file excel generato via codice

    Entity l'ho citato perché avrei voluto usare un altro nuget specifico per ottenere file xml (tipo rotativa o epplus), ma non sono riuscito ad installarlo per quell'errore di cui sopra.

    Tu cosa mi consiglieresti per creare un file excel di dati?
Devi accedere o registrarti per scrivere nel forum
4 risposte