Question

Je dois développer un service et l'installer dans une boîte W2003 pour lire des fichiers Excel un processus, puis ses informations. Le processus est suit que, les utilisateurs télécharger des fichiers Excel via FTP et mon service doit prendre ces fichiers, valider et mettre à jour un DB SQL Server.

L'application fonctionne bien sur mon ordinateur, mais sur le serveur, il demande les bibliothèques mais quand je tente d'installer le MS Office 2003 PIA Assemblées, système affiche « S'il vous plaît installer Microsoft Office 2003 avant d'installer le produit ».

Je préfère rester à l'écart de toute mise à niveau du serveur que nous devrions exiger OKs, etc .. donc, est-il un moyen simple de lire simplement les fichiers Excel sans avoir à installer une mise à jour sur le serveur.

les commentaires sont les bienvenus.

Merci, m0dest0.

ps. en utilisant vb.net et vs 2008.

Était-ce utile?

La solution

Utilisation Interop sur le serveur est pris en charge par MS - voir Aspose.Cells et Flexcel ... n'a pas essayé SpreadsheetGear mais écoutez + lu beaucoup de bonnes choses à son sujet ...

Options gratuites (bien que pour le nouveau format xlsx seulement!) Sont par exemple OpenXML 2 à partir de MS et EPPlus .

Autres conseils

Pour une solution avec rien à installer sur toutes les versions récentes de Windows Server ..... Je ne suis pas sûr que le code exact de VB.NET, mais vous devriez facilement être en mesure de le faire sur une machine à l'aide de Microsoft OLEDB les pilotes qui devraient être disponibles sur une version récente de windows server ou peut être installé à partir d'un hors téléchargement gratuit du site Microsoft pour les très anciennes versions de serveur windows. Je vais essayer de code pseudo cela, vous devrez adapter pour VB.NET. Notez que pour référencer vos champs par nom, la première ligne de la zone sélectionnée dans la feuille de calcul doit contenir les noms des champs dans les valeurs de la colonne. Sinon, vous devrez simplement d'utiliser des valeurs numériques pour indexer chaque champ retourné par la position de la colonne.

Set objExcelConnection = CreateObject("ADODB.Connection")
objExcelConnection.Provider = "Microsoft.Jet.OLEDB.4.0"
objExcelConnection.ConnectionString = "Data Source=d:\path\to\excel\file\on\your\server.xls;Extended Properties=""Excel 8.0;IMEX=1;"";"
objExcelConnection.CursorLocation = 3
objExcelConnection.Open


sSQL = "select * from [worksheetname$]"
set rsWorksheet = objExcelConnection.Execute(sSQL)
do while not rsWorksheet.Eof
    sValue = rsWorksheet("FieldName")
    rsWorksheet.MoveNext
loop
rsWorksheet.Close

set objExcelConnection = nothing

J'utilise le lecteur de données Excel (http://exceldatareader.codeplex.com/) quand j'ai besoin pour traiter les fichiers Excel. Il gère xls et xlsx fichiers sans accroc, et j'ai fonctionner dans quelques applications sur un système d'exploitation du serveur. Il enregistre chaque feuille comme un objet DataTable, et chaque « cellule » dans les correspond DataTable à la cellule Excel avec la même adresse. Selon la façon dont vous configurez votre lien de serveur SQL, il pourrait ne pas être trop conversion nécessaire pour vider le contenu dans la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top