2010-06-25 5 views
1

Salut, je suis confronté à un problème.Comment lire le fichier Excel où le bureau n'est pas installé (C# 3.0, dotnet 3.5)

Sur mon serveur, aucun bureau n'est installé. Cependant, j'ai besoin d'accéder aux données du fichier Excel.

J'ai utilisé le fichier dll Microsoft.Office.Interop.Excel. Je suis sous l'impression que cela fonctionne

parce que l'emplacement dll est

C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll 

La même chose est disponible dans la machine serveur également. Mais il ne dispose pas de bureau installé il

Mais quand je courais le programme que j'a l'exception

System Exception:System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154. 

recherche sur Google ne fournit pas beaucoup de soutien.

En outre, il est très urgent.

Veuillez nous aider.

+6

"[URGENT]" ajoute _nothing_ utile à votre question. En fait, cela me fait lire _slower_. Le manque de planification de votre part ne constitue pas une urgence de notre part :-) – paxdiablo

+0

Retiré la stupide partie urgente, sinon vous n'obtiendrez sûrement pas de réponses rapidement. – leppie

+0

pls m'envoyer les codes, est urgent – Meff

Répondre

1

Vous êtes bourré fondamentalement. Le fichier interop pointe simplement vers un objet COM enregistré par Excel lors de son installation.

Étant donné que vous n'avez pas Excel, son enregistrement COM ne sera pas dans le registre, de sorte que le fichier interop pointe effectivement vers un lien brisé, d'où l'obtention de l'exception COMException.

Vous devez installer Office pour que cela fonctionne comme il se doit.

2

Les assemblys Office PI enveloppent simplement les composants COM Office pour fournir une interface qui peut être appelée à partir du code managé .NET. Vous devez toujours installer Office, cependant, vous avez d'autres options ...

Si vous travaillez avec des fichiers Office 2007, vous pouvez essayer le Open XML SDK 2.0 for Microsoft Office. Si vous travaillez avec des fichiers d'une version antérieure d'Office, vous pouvez également utiliser des bibliothèques tierces, par ex. SpreadsheetGear.

2

Si vous utilisez Excel & C#, essayez http://epplus.codeplex.com/

bibliothèque libre qui peut lire/écrire des feuilles de calcul, très très facile à utiliser avec Excel.

Exemple de lecture dans des fichiers Excel comme demandé par OP:

FileInfo existingFile = new FileInfo(FilePath); 
using (ExcelPackage package = new ExcelPackage(existingFile)) 
{ 
    // get the first worksheet in the workbook 
    ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; 
    int col = 2; //The item description 
    // output the data in column 2 
    for (int row = 2; row < 5; row++) 
     Console.WriteLine("\tCell({0},{1}).Value={2}", row, col, worksheet.Cells[row, col].Value); 

    // output the formula in row 5 
    Console.WriteLine("\tCell({0},{1}).Formula={2}", 3, 5, worksheet.Cells[3, 5].Formula);     
    Console.WriteLine("\tCell({0},{1}).FormulaR1C1={2}", 3, 5, worksheet.Cells[3, 5].FormulaR1C1); 

} // the using statement automatically calls Dispose() which closes the package. 

PS: Demander avec s'il vous plaît/merci sera probablement obtenir plus de gens à aider;)

+0

un exemple pour lire une feuille Excel –

+0

http://epplus.codeplex.com/SourceControl/changeset/view/59882#885360 Regardez sample2.cs dans le référentiel de code source. – Meff

0

En fonction de vos besoins, NPOI peut faire le travail (il ne nécessite pas de bureau pour être installé).

Questions connexes