I am trying to convert a .xls file to an .xlsx file on the server-side using Microsoft.Office.Interop.Excel.Workbook
class as follows:
workBook
Using DCOMCNFG.exe. Open it and go to: Component Services -> Computers -> My Computer -> DCOM Config -> Microsoft Excel Application.
Open the properties, select Identity tab and select the interactive user.
I found this article which talks more about this issue in depth If this helps, error “80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))” could occur due to following reasons:
https://blogs.msdn.microsoft.com/adioltean/2005/06/24/when-cocreateinstance-returns-0x80080005-co_e_server_exec_failure/
Same problem was solved for me by "allowing desktop interaction" for the service. (in tomcat6w config tool on Log On tab)
I fixed this issue with this solution: right click on Component Services/Computers/DCOM Config/Microsoft Word97 - 2003 Document properties/General Tab
set Authentication Level:None
Try to add Thread.Sleep Method, such as Thread.Sleep(2000) for 2 seconds after workBook.open and workBook.SaveAs two methods. If your Excel file has a lot of formats, try to extend few more seconds.
You never want to have Excel on your server side!
And please believe me, if you must manipulate excel sheets, you do not want to use anything else than Excel. Do not use any library, because sooner or later you run into bugs that not get fixed or cannot be fixed for several reasons (one i.e. being, that Excel is doing something "wrong"). You only use Excel on the client side. Your client has to install and maintain it. If it is there, you use it, otherwise you tell them, that Excel functionality is only working with a valid Excel installation on the client computer
Use XML, a DataSet, or else, to stream Excel information to the server to store it. Or manipulate that data there with your server side code, but not with Excel.
Excel interop must always happen on the client computer. It's just like that...