Piloter Excel sans avoir installé office [Résolu]

Signaler
Messages postés
99
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
14 février 2011
-
Messages postés
99
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
14 février 2011
-
Bonjour,

j'ai fait une application qui pilote des fichiers Excel en utilisant les dlls d'office 2003.

J'aimerai l'utiliser sur d'autre machine, qui ne disose pas forcément d'office 2003, et de ce faite j'aurai voulus savoir si il me suffis de copie les dlls dans le dossiers de l'application ou si je dois obligatoirement avoir office 2003 sur la machine pour que mon application fonctionne ?

merci.

Deux choses sont infinies : l'univers et la bêtise humaine.
Mais en ce qui concerne l'univers, je n'en ai pas encore acquis la cetitude absolue.

Albert Einstein<!--

4 réponses

Messages postés
99
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
14 février 2011
1
Salut rodcobalt22,

je te remercie pour ta super réponse, mais elle ne convient pas à ce que je désire faire sur mes fichiers Excel.
J'ai donc choisie la facilité.
J'ai installer office 2003.

Deux choses sont infinies : l'univers et la bêtise humaine.
Mais en ce qui concerne l'univers, je n'en ai pas encore acquis la cetitude absolue.

Albert Einstein<!--
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
61
Hello,

Sauf erreur, les dll font partie de la licence office, et tu ne peux pas (légalement) les copier sans avoir une licence sur la machine de destination.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
99
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
14 février 2011
1
ok SharpMao, j'ignorais cela.
mais j'ai une licence office 2000 sur l'autre. Mais ça ne fonctionne pas.

Deux choses sont infinies : l'univers et la bêtise humaine.
Mais en ce qui concerne l'univers, je n'en ai pas encore acquis la cetitude absolue.

Albert Einstein<!--
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

Il te reste toujours la possibilté d'attaquer les Fichier Excel comme une base de donnée. Ainsi, il n'y aucune assembly à installer.

Voici une méthode qui peut le faire :

/// <summary>
/// Permet de charger le contenue d'une feuille excel dans une DataTable à partir du chemin et le nom de la feuille désirée
/// </summary>
/// Chemin du fichier Excel


/// Nom de la feuille excel


/// <returns>DataTable contenant l'ensemble des celulles et lignes du fichier Excel. Si la feuille est vide le retour est égal à "Null"</returns>
/// <remarks>Aucune gestion d'exception n'est faite à l'intérieur de cette méthode</remarks>
public DataTable GetfichierFeuilleFichierExcel(string strCheminFichier, string strNomFeuilleExcel)
{
// Chaine de connexion
string strCnx = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strCheminFichier + ";Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;" + (char)34 + ";";
System.Data.DataTable dtRetour = null;
System.Data.OleDb.OleDbConnection oCnx = new System.Data.OleDb.OleDbConnection(strCnx);
System.Data.OleDb.OleDbCommand objCmdSelect = null;
System.Data.OleDb.OleDbDataAdapter objAdapter = null;
System.Data.DataSet oDs = new DataSet();

// vérification globale des données entrantes
if(strCheminFichier != string.Empty && strNomFeuilleExcel != string.Empty)
{
if(System.IO.File.Exists(strCheminFichier))
{
// ouvertur de la connexion
oCnx.Open();
// création de la commande
objCmdSelect =new System.Data.OleDb.OleDbCommand("SELECT * FROM ["+ strNomFeuilleExcel +"$]", oCnx);
objAdapter = new System.Data.OleDb.OleDbDataAdapter();
// on informe de l'instruction SELECT
objAdapter.SelectCommand = objCmdSelect;
// on execute la requete en spécifiant le protocole et on remplit le DataSet
objAdapter.Fill(oDs, "XLData");
// Vérification du dataset
if(oDs != null && oDs.Tables != null && oDs.Tables.Count > 0)
{
dtRetour = oDs.Tables[0];
}
else
{
dtRetour = null;
}


// Libération
oCnx.Close();
objCmdSelect.Dispose();
objAdapter.Dispose();
}
}
return dtRetour;
}