Excel Services & PowerPivot for SharePoint

Troubleshooting Excel Services and PowerPivot for SharePoint rendering and refreshing in the browser.

Excel Services Fix - "The workbook cannot be opened".

Excel Services Fix - "The workbook cannot be opened".

  • Comments 25
  • Likes

When opening an Excel workbook (.xlsx) in the browser the error "The workbook cannot be opened" is thrown:

This is caused by the account running Excel Services not having proper permissions to the Content Database.  When you upload an Excel workbook to a SharePoint library, the workbook is stored as blobs in the Content Database.  When you choose to open this in Excel Services, the account running Excel Services needs to retrieve and reassemble the workbook.  If the account running Excel Services lacks proper permissions, "The workbook cannot be opened".

We have a KB on how to resolve this issue:

The Excel Services Application for SharePoint 2010 does not load or display workbooks

http://support.microsoft.com/kb/981293

 

In this blog, I will step you through this KB; where to collect data and explain what the two below SharePoint Management Shell Commands do:

 

$w = Get-SPWebApplication –Identity <URL of the Web application>
$w.GrantAccessToProcessIdentity("<insert service account>")

 

You need to find the <URL of the Web application>.  To do this:

 

1. Browse to the report library where the failing workbook is located and make note of the URL.

 

 

2. Central Administration > Application Management > Manage web applications compare the URL to the list of Web Apps.  Find the correct Web App URL and add it to “URL of the web application”.

 

 

You now have the first command: 

 

$w = Get-SPWebApplication –Identity http://tschauer

 

3. Central Administration > Security > Configure Service Accounts > from the first dropdown, select the application pool running "Excel Services Application" and add that account where is says “<insert service account>”.

 

You now have the second command:

$w.GrantAccessToProcessIdentity("Devtest\Excel_Services_Account")

So now you can run these commands by following the below steps:

1. Click Start, click All Programs.
2. Click Microsoft SharePoint 2010/2013 Products.
3. Click SharePoint 2010/2013 Management Shell.
4. At the Windows PowerShell command prompt (PS C:\>), type the following command, and then press ENTER:

$w = Get-SPWebApplication –Identity http://tschauer
$w.GrantAccessToProcessIdentity("Devtest\Excel_Services_Account")

When you run these commands you are:

1. Adding the account running Excel Services as a User to the Content Database (Security > Users).
2. Giving the account running Excel Services the SPDataAccess Membership (Account > Membership)
3. Giving the account running Excel Services Full Control to the Web Application (Via "Policy for Web Application")

Comments
  • Thanks! This did the trick for me when having this error in SharePoint 2013, too.

  • Superb. Fixed my problem, thank you.

  • Thank you so much! This worked BEAUTIFULLY for SharePoint 2013! Wonderful instructions, very detailed, and fast to implement.

  • Thanks alot for putting this.  Works like charm!

  • Thanks Tom S., much appreciated clear to implement fix!

  • Great. It fixed the issue of my new site collection with separate database.

  • Thank you that was very helpful!

  • Thanks very much.

  • Thanks very much.

  • Thanks Tom

  • Nice post Tom.
    But, Need more in my case.You can find here
    http://asharepointsolutions.blogspot.in/2014/03/excel-services-application-issues-sp.html

  • Thanks! Also work in SharePoint 2013 + Adding https on the trusted file locations by default it's only http

  • Excel Fix Toolbox prog is effective, especially when you want to restore the signatures. Try it for recovering damaged files (xls, xlsx, xlt, xlmx), sheets, documents.
    http://www.excel.fixtoolbox.com/

  • That didn't work. I can't open any Excel files in the browser. I need to be able to do this to use excel services.

  • thank you . for me only executing 2 lines of power-shell fixed the issue which was due to migrating WSS_content to another server. for me the new server was SQL server 2012 which i used the always-on listener name instead of actual servername.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment