Un titolo migliore per cercare di riassumere questa faccenda proprio non mi veniva. Il fatto. Stamane cerco di aprire un file di excel regolarmente salvato e utilizzato fino a ieri. Da premettere che ora lavoro in ambiente Mac, quindi quasi esclusivamente questo file lo apro con Office for Mac 2008, ma qualche volta, in virtualizzazione, se ci sono, mi capita di aprirlo anche con Office 2007.
Mai una volta che abbia trovato problemi di compatiblità, errori in lettura, valori spostati o rimossi (e ci mancherebbe pure - ndr). L’unica differenza che ho notato - perchè è una differenza visiva ed immediata - tra le due suite Microsoft è una diversa interpretazione dei colori delle celle con la formattazione condizionale, ma onestamente parlando non mi crea questo grande scompenso.
Ebbene, stamattina quando tento di aprire il file da Office for Mac, ricevo un bel messaggio di errore che in sintesi dice che non può aprire il file a causa di un qualche errore (Vedi immagine qui accanto). Non vi è una spiegazione del problema e da profano del Mac e del suo possibile registro eventi che non saprei dove andare a recuperare, inizio a pensare una possibile risoluzione del problema.
Premesso che avevo comunque il backup di ieri, quindi avrei sicuramente fatto prima a prendere la copia di backup togliendomi tutte le castagne dal fuoco in un baleno, io sono un tipo a cui piacciono le sfide. Devo capire il perchè. E il primo perchè è: come mai Office for Mac non prevede una procedura di ripristino degli errori dei file danneggiati?
Già, perchè il primo tentativo è stato quello di aprire il file con Office 2007, e con grande stupore un validatore interno ha riconosciuto lo stesso errore proponendomi anche il recupero e la correzione delle informazioni.
Operazione avvenuta con successo, tanto è che ho scoperto anche il problema e riavuto indietro il mio bel file con meno di 3 minuti di lavoro (e 10 per documentare quello che è successo con questo post).
Questa cosa è decisamente strana. Vero che i team di sviluppo delle due suite non sono gli stessi, ma forse i signori che sviluppano Office for Mac si sono adagiati un pò troppo sul concetto che il Mac è infallibile e indistruttibile al punto che si sono permessi di non scrivere quella parte di codice relativa al recupero dei file danneggiati.
Mal che sarebbe andata, c’era una soluzione completamente differente, la cui condizione sinequanon era che il file fosse nel nuovo formato Excel (quello con estenzione xlsx, per capirci).
Infatti, come già spiegato in passato, Microsoft da Office 2007 adopera un formato aperto per i suoi documenti, che vogliano essere dei docx o degli xlsx, sono alla fine dei file compressi al cui interno le informazioni sono tutte scritte in chiaro senza codifica alcuna. Mal che sarebbe andato, bastava rinominare il file in un .zip, cercare dentro la cartella worksheet il file xml relativo al foglio di interesse, salvarlo altrove e tentare una reinclusione in un file nuovo creato per l’occasione.
Nel merito di quanto sopra espresso, a questo punto mi sono preso la briga di fare qualche prova. L’operazione non è proprio immedatissima, e a dire il vero non sono riuscito in un recupero totale dei dati, sebbene le informazioni le avessi li tutte a disposizione, perchè comunque all’interno dei file xml erano tutte presenti.
Ho notato infatti che, considerato una cartella di lavoro con un solo foglio, i dati testuali contenuti nel foglio vengono salvati in un file separato dell’archivio, che si trova al di fuori della carte woorksheets (file sharedStrings.xml), mentre all’interno della poc’anzi nominata cartella worksheets sono present tanti file quanti sono i fogli della cartella stessa.
Questi file (testo e stringhe) dovrebbero essere messi in relazione tra di loro mediante dei file contenuti nell’archivio che prendono il nome di *rels. Tuttavia, rimpiazzando questi file, non sono riuscito ad ottenere il risultato sperato. C’è qualcosa quindi che mi sfugge in questa tecnica di recupero maccheronica, quindi consiglio caldamente a tutti il buon e sano backup.
In tal caso, uno sguardo a questo tool, forse può risolvere i problemi. Io non l’ho provato, quindi non sò con precisione se funzioni o meno. Ma già il fatto che ci sia una demo, consente di provare un recupero e vedere quale informazioni siano ripristinabili.