elhazard
Messages postés4Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 octobre 2006
-
2 oct. 2006 à 17:30
xerico
Messages postés29Date d'inscriptionmercredi 10 décembre 2003StatutMembreDernière intervention17 janvier 2012
-
3 juin 2011 à 22:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
la longueur de l'argument "command" ne doit pas dépasser 2080 caractère.
cs_ingenieurA
Messages postés4Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention26 juin 2012 3 juin 2011 à 22:04
salut tout le monde s'il vous plait je un petit prog ou fonction qui me permet d'appeler outlook dans c# pour envoyer des mails??????????
poomen
Messages postés117Date d'inscriptiondimanche 2 janvier 2011StatutMembreDernière intervention25 mars 2011 11 mars 2011 à 22:17
je travaille dans visuel studio 2008 , mais il me souligne sur office sur tout les lignes , j'ai ajoute la ligne using ExcelApplication = Microsoft.Office.Interop.Excel.Application; mas il y a toujours l'erreur , quelqu'un peut m'aider ??
ldonalt
Messages postés1Date d'inscriptionmercredi 2 mai 2007StatutMembreDernière intervention13 mars 2009 13 mars 2009 à 17:44
Merci pour ce code et les commentaires.
Je veux juste rajouter que si on a plus de 26 colonnes dans la table, il y a l'erreur Message="Exception from HRESULT: 0x800A03EC".
Il faut revoir la commande "Convert.ToChar(65 + i).ToString()"
J'ai créé une fonction pour remplacer cette ligne de commande ( exemple: NomCellule(0)=A, NomCellule(26)=AA)
private string NomCellule(int i)
{
int resultat=0;
string retour_Char="";
while (i >= 0)
{
if (resultat != 0)
{
retour_Char =Convert.ToChar(65 + resultat-1).ToString();
i--;
}
if (i <= 25)
{
retour_Char = retour_Chaine + Convert.ToChar(65 + i).ToString();
break;
}
else //i>25
{
i = i - 25;
resultat++;
}
}
return retour_Char;
}
Hurin
Messages postés8Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention25 mars 2009 15 févr. 2009 à 09:42
Merci beaucoup pour ce code qui m'a beaucoup aidé, et merci également pour la discussion en dessous sur les références à ajouter !
Bonne journée
cs_MoKaLux
Messages postés39Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention27 mars 20091 18 janv. 2009 à 00:10
euh !!! quelqu'un sait-il comment on fait pour que le code fonctionne même si il y a d cellules vides ???
Merci...
:-)
cs_MoKaLux
Messages postés39Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention27 mars 20091 18 janv. 2009 à 00:08
euh pardon, cela fonctionne très bien merci.
Mon problème était d'avoir une cellule vide dans mon dgv !!! maintenant c super bon.
Encore une fois MERCI...
cs_MoKaLux
Messages postés39Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention27 mars 20091 17 janv. 2009 à 22:44
Bonjour,
merci pour le code je l'ai essayé et il m'a bien crée un fichier excel à partir de ma dgv. Génial mais...
Le prog bug avant de finir et g l'erreur :
System.Runtime.InteropServices.COMException was unhandled
Message="Exception from HRESULT: 0x800A03EC"
Source=""
ErrorCode=-2146827284
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
POURQUOI SVP ???
EN TOUT CAS MERCI POUR LE CODE
xerico
Messages postés29Date d'inscriptionmercredi 10 décembre 2003StatutMembreDernière intervention17 janvier 20122 29 nov. 2007 à 21:35
en vb tu utiliser :
Dim excel As New Excel.ApplicationClass()
a_alexandrov
Messages postés2Date d'inscriptionlundi 20 août 2007StatutMembreDernière intervention20 août 2007 20 août 2007 à 14:37
use DataGridView Extension - it is free and gives you the ability to export to Excel, Html, soon Pdf (they say). Also you can search for text, save some settings as a theme, make all controls look and behave the same very easy.
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 28 oct. 2006 à 18:18
j'ai toujours des problemes, pouvez vous m'envoyer le projet compile directement (rudh9@yahoo.com)
merci
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 28 oct. 2006 à 14:37
dans les references COM moi je n'ai pas "Microsoft.office.interop.excel" je vais reinstaller mon Office puis on verra
cs_rahou
Messages postés12Date d'inscriptionmercredi 10 décembre 2003StatutMembreDernière intervention28 octobre 2006 28 oct. 2006 à 02:08
Un de mes amis a déjà eu ce problème avec "INTEROP" auparavant. Mais après une réinstallation de Office 2003 avec l'option "complète", le problème était résolu. Apparemment, certaines options d'instalaltion doivent être cochées pour que ces objets COM soient disponibles.
elhazard : j'accepte toutes les critiques et je te remercie aussi pour celles que tu as postées et ça m'a aussi permis de mieux sécuriser mon code. ;-)
elhazard
Messages postés4Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 octobre 2006 27 oct. 2006 à 19:38
Personnelement j'ai compilé le projet avec visual 2005 donc tu devrais pas avoir de problemes :
tu dois rajouter la référénce : cherche Microsoft.office.interop.excel dans les objets COM;
sinon, le using ExcelApplication = Microsoft.Office.Interop.Excel.Application n'est pas tres joli :]
Rahou, ne voit pas de reproches dans mon post précédent, ton code source m'a bien aidé à comprendre les interop
et je t'en remercie =)
++
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 27 oct. 2006 à 12:27
oui bien sur, j'ai ajoute l'objet COM "Microsoft Excel Objet library 11"
ensuite j'ai ajoute la ligne using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
mais il m'affiche l'erreur :
Le type ou le nom d'espace de noms 'Interop' n'existe pas dans la classe ou l'espace de noms 'Microsoft.Office' (une référence d'assembly est-elle manquante ?)
alors comment faire ???
cs_rahou
Messages postés12Date d'inscriptionmercredi 10 décembre 2003StatutMembreDernière intervention28 octobre 2006 27 oct. 2006 à 01:05
J'ai utilisé la version 2005 de visual studio.
Pour l'espace de noms "INTEROP", il faut importer l'objet COM "Microsoft Excel Objet library 11 (pour excel 2003)".
Pour répondre au post précédent : ce code est juste un exemple qui permet aux autres qui ont des soucis pour faire un code pareil de s'inspirer de celui-ci. Toute remarque ou amélioration utile est la bienvenue.
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 26 oct. 2006 à 22:50
bonjour,
tu as cree cette application avec quelle version de VS, est ce la version 2003 ou 2005 parce que je trouve quelques problemes pour utiliser l'application.
j'ai ajoute l'objet COM Microsoft.Office mais il m'affiche l'erreur suivante:
Le type ou le nom d'espace de noms 'Interop' n'existe pas dans la classe ou l'espace de noms 'Microsoft.Office' (une référence d'assembly est-elle manquante ?) C:\Documents and Settings\User\Mes documents\Visual Studio 2005\Projects\ExporterVersExcel\ExporterVersExcel\Form1.cs
elhazard
Messages postés4Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 octobre 2006 2 oct. 2006 à 20:58
j'ai été un peu rapide (sur le 3eme point) il faut bien sur vérifier si l'objet contenu dans la case du datagridview existe et donc (cells[i].value != null)
désolé :]
elhazard
Messages postés4Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 octobre 2006 2 oct. 2006 à 17:30
Salut, il y a pas mal d'erreurs dans le code :
1) il ne faut pas oublier d'ajouter les references
using Microsoft.Office.Interop.Excel et de faire (pour utiliser le code comme ca)
using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
2)tu veux au debut imprimer les
r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", colonnes :
ce n'est pas + "1" mais "2" dans ce cas et je te conseille plutot d'utiliser les index de la datagridview (colonne et ligne)que des indices de boucles
3)dans la boucle foreach verifie que la valeur n'est pas nulle dans la datagridview avant d'y acceder
if (exsheet.Cells[j, i] != null) et n'oublie pas qu'il n'y a pas que des String dans une datagridview donc il vaut verifier le type avant (typeof)
4) il faut sécuriser plus ton code :
si l'application echoue a la fin il faut mettre le
excel.Quit() dans un finalize:
3 juin 2011 à 22:12
string command = "mailto:info@codegain.com?subject=The CodeGain-Editor";
Process.Start(command);
la longueur de l'argument "command" ne doit pas dépasser 2080 caractère.
3 juin 2011 à 22:04
11 mars 2011 à 22:17
13 mars 2009 à 17:44
Je veux juste rajouter que si on a plus de 26 colonnes dans la table, il y a l'erreur Message="Exception from HRESULT: 0x800A03EC".
Il faut revoir la commande "Convert.ToChar(65 + i).ToString()"
J'ai créé une fonction pour remplacer cette ligne de commande ( exemple: NomCellule(0)=A, NomCellule(26)=AA)
private string NomCellule(int i)
{
int resultat=0;
string retour_Char="";
while (i >= 0)
{
if (resultat != 0)
{
retour_Char =Convert.ToChar(65 + resultat-1).ToString();
i--;
}
if (i <= 25)
{
retour_Char = retour_Chaine + Convert.ToChar(65 + i).ToString();
break;
}
else //i>25
{
i = i - 25;
resultat++;
}
}
return retour_Char;
}
15 févr. 2009 à 09:42
Bonne journée
18 janv. 2009 à 00:10
Merci...
:-)
18 janv. 2009 à 00:08
Mon problème était d'avoir une cellule vide dans mon dgv !!! maintenant c super bon.
Encore une fois MERCI...
17 janv. 2009 à 22:44
merci pour le code je l'ai essayé et il m'a bien crée un fichier excel à partir de ma dgv. Génial mais...
Le prog bug avant de finir et g l'erreur :
System.Runtime.InteropServices.COMException was unhandled
Message="Exception from HRESULT: 0x800A03EC"
Source=""
ErrorCode=-2146827284
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
POURQUOI SVP ???
EN TOUT CAS MERCI POUR LE CODE
29 nov. 2007 à 21:35
Dim excel As New Excel.ApplicationClass()
20 août 2007 à 14:37
http://www.completit.com/Products/DGVE/Overview.aspx
Hope it will be helpfull.
28 oct. 2006 à 18:18
merci
28 oct. 2006 à 14:37
28 oct. 2006 à 02:08
elhazard : j'accepte toutes les critiques et je te remercie aussi pour celles que tu as postées et ça m'a aussi permis de mieux sécuriser mon code. ;-)
27 oct. 2006 à 19:38
tu dois rajouter la référénce : cherche Microsoft.office.interop.excel dans les objets COM;
sinon, le using ExcelApplication = Microsoft.Office.Interop.Excel.Application n'est pas tres joli :]
Rahou, ne voit pas de reproches dans mon post précédent, ton code source m'a bien aidé à comprendre les interop
et je t'en remercie =)
++
27 oct. 2006 à 12:27
ensuite j'ai ajoute la ligne using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
mais il m'affiche l'erreur :
Le type ou le nom d'espace de noms 'Interop' n'existe pas dans la classe ou l'espace de noms 'Microsoft.Office' (une référence d'assembly est-elle manquante ?)
alors comment faire ???
27 oct. 2006 à 01:05
Pour l'espace de noms "INTEROP", il faut importer l'objet COM "Microsoft Excel Objet library 11 (pour excel 2003)".
Pour répondre au post précédent : ce code est juste un exemple qui permet aux autres qui ont des soucis pour faire un code pareil de s'inspirer de celui-ci. Toute remarque ou amélioration utile est la bienvenue.
26 oct. 2006 à 22:50
tu as cree cette application avec quelle version de VS, est ce la version 2003 ou 2005 parce que je trouve quelques problemes pour utiliser l'application.
j'ai ajoute l'objet COM Microsoft.Office mais il m'affiche l'erreur suivante:
Le type ou le nom d'espace de noms 'Interop' n'existe pas dans la classe ou l'espace de noms 'Microsoft.Office' (une référence d'assembly est-elle manquante ?) C:\Documents and Settings\User\Mes documents\Visual Studio 2005\Projects\ExporterVersExcel\ExporterVersExcel\Form1.cs
2 oct. 2006 à 20:58
désolé :]
2 oct. 2006 à 17:30
1) il ne faut pas oublier d'ajouter les references
using Microsoft.Office.Interop.Excel et de faire (pour utiliser le code comme ca)
using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
2)tu veux au debut imprimer les
r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", colonnes :
ce n'est pas + "1" mais "2" dans ce cas et je te conseille plutot d'utiliser les index de la datagridview (colonne et ligne)que des indices de boucles
3)dans la boucle foreach verifie que la valeur n'est pas nulle dans la datagridview avant d'y acceder
if (exsheet.Cells[j, i] != null) et n'oublie pas qu'il n'y a pas que des String dans une datagridview donc il vaut verifier le type avant (typeof)
4) il faut sécuriser plus ton code :
si l'application echoue a la fin il faut mettre le
excel.Quit() dans un finalize:
catch (Exception ex)
{
throw (ex);
}
finalize
{
excel.Quit();
}
voila bon courage