Excel Worksheet and backups suddenly get Unreadable Content Message

Anonymous
2010-04-20T15:54:27+00:00

I have a 400 line Excel 2007 single worksheet spreadsheet.

Each row has a Comment inserted in one of the cells. The Comment has been formatted as follows: "Size" has been adjusted, "Colors and Lines" has been adjusted by choosing "Color", "Fill Effects", "Picture", "Select Picture" and a .jpg file from a certain folder is selected.

The result is that when I hover over this cell in any given row, the .jpg file that was placed in the Comment appears.  There are other simple text comments in several other cells in the worksheet.

This all was working fine for me for several months, and I was making backups just to be safe.

Suddenly, I started getting "Excel found unreadable content in..."  and it offered me to "recover the contents of this workbook". When I choose to recover, I get my entire worksheet back without any comments (ones with .jpgs and ones without), and I am told "Excel was able to open the file by repairing or removing the unreadable content".

I also get a chance to view the "log file" and this is its contents:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

**-** <recoveryLog xmlns="**http://schemas.openxmlformats.org/spreadsheetml/2006/main**">


<logFileName>error053200_01.xml</logFileName>


<summary>Errors were detected in file 'C:\Users\Bruce Kay\Desktop\Documents\DOCUMENTS ON iPhone\All Casino Chip Collection.xlsx'</summary>

**-** <removedParts summary="Following is a list of removed parts:">


<removedPart>Removed Part: /xl/drawings/vmlDrawing1.vml part. (Drawing shape)</removedPart>


</removedParts>


</recoveryLog>

The same thing happens with all of my backups of this sheet, and those were backups of working versions of this sheet.

This is all unbelievably frustrating.

Does anyone think this was due to an automatic update by Microsoft?

Do you have any suggestions for recovery?

Thanks

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

55 answers

Sort by: Oldest
  1. Anonymous
    2014-03-20T15:18:09+00:00

    I was having a very similar issue to this with a worksheet that had a lot of drawing objects on it.  The file would not save properly, and would lose most of the drawing objects.  In researching this I found the following suggestion which worked for me.  Thank you to Thomas Kogoj!

    open the xls file, do a save as and save the file in the format: OpenDocument (ods) - close the file, open the ods file and now save it as xlsx. After then everthing is good...

    Hope this helps others!

    Was this answer helpful?

    3 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2014-03-26T20:25:00+00:00

    We have the same exact problem with Excel 2010.

    Did not find the cause of the problem yet.

    We have worksheets that we have been using for months then all of a sudden we get this issue.

    We have a quick solution (repair) : Open the file in Word 2007, save it and then you can open it in 2010 and it works fine....

    Don't know why but it works...

    AB

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments
  3. Anonymous
    2014-04-05T01:56:56+00:00

    I had the same problem using Excel 2013 on an .xlsx file with images inside comments.

    I was able to get the document back to a working state, and at the same time see where the corruption is.

    Here's what worked for me (summary: remove a couple of bogus tags in an embedded text file):

    1. take a backup of the file (just in case)
    2. open the file and accept Excel's tentative to recover the file
    3. note the full path of the "removed part" file, e.g. "/xl/drawings/vmlDrawing2.vml"
    4. close the file without saving
    5. rename the file to end with .zip (e.g. myExcelFile.xlsx.zip)
    6. open the zip file, it shows as a folder hierarchy (if you're curious to see where your images are stored, I found them fully readable under the following folder in the zip file: \xl\media\ )
    7. extract the problematic file found in step 3, e.g. "/xl/drawings/vmlDrawing2.vml"
    8. open it with Notepad
    9. if you want to see what is wrong with this file, you can copy and paste its whole text content to an online XML syntax checker (e.g. http://www.w3schools.com/dom/dom_validate.asp).  Mine showed duplicate attributes on a given line (once you correct a line, you can re-paste your corrected text to find the next error, and so on).
    10. Here's the bug I had: all the v:fill tags had multiple o:relid attributes, even a working file has multiple, and it shouldn't, but in the case of the broken file, one of those attributes is different from the others, e.g.: v:fill o:relid="rId3" o:relid="rId3" o:relid="rId3" o:relid="rId3" o:relid="rId3"  o:relid="rId2"  <--- note the "rId2" instead of ="rId3" like the rest of the line
    11. for each v:fill tag, remove all but the last o:relid (in the previous example, that part of the line would now be v:fill o:relid="rId2" )
    12. once you have verified this for each v:fill, the XML of the file should be ok (step 9), save the file and put it back in the zip (overwriting the original one)
    13. rename the Excel file to its original name (e.g. myExcelFile.xlsx) by removing the .zip extension added in step 5
    14. open the file with Excel, everything is back to normal

    The error is probably due to changes that force renumbering of the existing images such as removing a line on which there is a comment with a picture on it (if it's not the last picture added) - I can reproduce the bug every time I remove one such line.  We can see that just the last entry ("rId2") is corrected, the rest stay the same ("rId3"), and Excel can't cope with those different values for the same tag.  To Microsoft: preventing multiple occurrences of the same attribute on a given tag should be the initial goal to solve this issue solves my problem, and I actually remove a line on which there is a comment with picture on it

    Your method solved my problem, and I actually removed a line on which there is a comment with a picture on it before the error happens.

    Thanks a lot!

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2014-04-15T19:42:49+00:00

    Thanks dlauzon that was exactly what I needed. I created a vbs to clean up my VML file since it was pretty extensive, and here it is in case it helps anyone else:

    ' drag and drop the .vml file onto this script, new file is saved to the same location with a Fixed_ prefix

    ' bring in drag and dropped file

    Set objArgs = WScript.Arguments

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Set oFSO2 = CreateObject("Scripting.FileSystemObject")

    sFile = objArgs(0)

    Set fileinfo = oFSO.GetFile(sFile)

    ' create new file

    sFile2 = fileinfo.parentFolder & "\Fixed_" & fileInfo.name

    If oFSO.FileExists(sFile) Then

     Set oFile2 = oFSO2.CreateTextFile(sFile2)

     Set oFile = oFSO.OpenTextFile(sFile, 1)

      Do While Not oFile.AtEndOfStream

       ' read through input file one line at a time

       sText = oFile.ReadLine

       IStartPos = 0

       iStartPos = InStr(sText, "o:relid=")

       ' if an o:relid is found we do special processing

       If iStartPos > 0 Then

        ' keep appending lines from the input file until we reach o:title

        iTitlePos = InStr(sText, "o:title=")

        While iTitlePos = 0

         sText = sText & oFile.ReadLine

         iTitlePos = InStr(sText, "o:title=")

        Wend

        ' find the LAST o:relid if there are more than one

        iNextPos = InStrRev(sText, "o:relid=")

        If iNextPos > 0 and iNextPos > iStartPos Then

         ' this is the last o:relid

         sItem = Mid(sText, iNextPos, iTitlePos - iNextPos)

         ' replace the multiple o:relid with only the last one

         sText = Left(sText, iStartPos - 1) & sItem & Mid(sText, iTitlePos)

        End If

       End If

       oFile2.WriteLine(sText)

      Loop

     oFile.Close

     WScript.Echo "Done"

    End If

    Was this answer helpful?

    5 people found this answer helpful.
    0 comments No comments
  5. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more