Sempre riguardo la conversione di documenti Office 2007 in PDF, mi è capitata questa cosa. Con documenti di word e powerpoint (creati con versoni precedenti di Office) non ho avuti mai problemi, invece con tutti i workbook excel che cercavo di aprire (richiamando il metodo Open), inizialmente mi tornava sempre questa eccezione COM:

Formato vecchio o libreria di tipo non valido. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Questo perchè ho installato il pacchetto Office 2007 su un Windows XP in lingua italiana. Questo problema penso che attacchi Excel per il fatto che è basato molto sul tipo di lingua con cui vengono gestite le date e i valori numerici.
Perciò .. Come fare ?
Alla fine è risultato abbastanza semplice... serve una classe che durante le operazioni con il modello ad oggetti di Excel, cambi semplicemente la cultura del thread corrente mettendola allo stesso valore della lingua con cui è stato installato Office 2007:

public class SwitchCulture : IDisposable

{
private CultureInfo originalCulture = null;

public SwitchCulture()
{
originalCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
}

public void Dispose()
{
Thread.CurrentThread.CurrentCulture = originalCulture;
}
}

Da utilizzare in questo modo:

using Microsoft.Office.Interop.Excel;


private void ExcelToPdf(SPWeb web, SPListItem newItem, string filename, string fileurl)
{
using (new SwitchCultureInfo())
{
ApplicationClass excelApplication = new ApplicationClass();
Workbook excelWorkBook = null;
object paramMissing = Type.Missing;

//parametri ...
excelWorkBook = excelApplication.Workbooks.Open(fileName.ToString(),
paramMissing, paramMissing, paramMissing, paramMissing,
paramMissing, paramMissing, paramMissing, paramMissing,
paramMissing, paramMissing, paramMissing, paramMissing,
paramMissing, paramMissing);
}
}

Fatto questo vedrete che l'apertura di un workbook Excel attraverso il modello ad oggetti andrà sempre liscia come l'olio.