0
votes

I want to delete content of an Excel file from my web application but I have some errors, I have used this code:

var excel = new Application();
var workbook = excel.Workbooks.Open(ExcelFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
try
{
    foreach (dynamic worksheet in workbook.Worksheets)
    {
        worksheet.Cells.ClearContents();
    }
    workbook.Save();
}
finally
{
    workbook.Close();
    excel.Quit();
}

but I'm having this error when I execute the application:

Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)).

1

1 Answers

0
votes

Can you try using something like this? Got code from this question, so it is not tested

excel.DisplayAlerts = false;
for (int i = excel.ActiveWorkbook.Worksheets.Count; i > 0 ; i--)
{
    Worksheet worksheet = (Worksheet)excel.ActiveWorkbook.Worksheets[i];
    worksheet.Cells.ClearContents();        
}
excel.DisplayAlerts = true;

But if it fails, you could eventually delete all worksheets, and just add new ones?