Accueil > Forum > > > > Pb de lecture de valeur décimale avec Excel
Pb de lecture de valeur décimale avec Excel
vendredi 1 septembre 2006 à 16:47:18 |
Pb de lecture de valeur décimale avec Excel

amalcon
|
Bonjour,
J'ai un problème que je trouve un peu bizzare. Via VC++ (et des MFC), je pilote excel et j'arrive à faire quasiment tout ce que je veux (grace à plusieurs codes de ce site ), sauf lire une valeur décimale?? En clair, quand une cellule excel contient du texte ou un entier tout va bien, mais dès qu'il s'agit d'un nombre décimal, j'ai un gros plantus. J'ai essayé de modifier le séparateur décimal, de transformer le format de cellule (en scientifique, texte), mais rien n'y fait. J'ai voulu sauvegarder le fichier au format texte pour le lire simplement, mais le séparateur étant la tabulation, je ne peux pas m'en servir (des tabulations peuvent être présentent dans les cellules et empecher de récupérer correctement les données). Après 2 jours de galère, je ne trouve pas de solution, ce qui est d'autant plus frustrant que cela doit pas être sorcier de récuperer ce type de donnée (c'est quand même la base d'excel ! ). Pour info, je mets un petit bout de mon code (pas forcément optimisé, mais qui marche très bien pour le reste), ca peut toujours vous indiquer ce qui plante :
1) // Après les définitions qui vont bien 2) workbook=excel->Workbooks->Open((LPCTSTR)nom_fichier); 3) worksheet=excel->ActiveSheet; 4) VARIANT lu=worksheet_TP->Range[_com_util::ConvertStringToBSTR(s)]->Value; 5) BSTR my_bstr = lu.bstrVal; 6) CStringArray string.SetAt(0,_com_util::ConvertBSTRToString(my_bstr));
Dans le cas où la valeur à lire est un entier, la ligne 5 est remplacée par "int n_int=(int)lu.dblVal;" C'est la ligne 4 qui plante. Ca me donne la fameuse fenêtre "La mémoire ne peut pas être read". J'ai essayé de changer Value par tout ce que j'ai pu trouver (value2, text, ...) Cela continue de planter.
Désolé pour le post un peu long, mais je ne veux rien oublier.
Si quelqu'un à la solution à mon problème, merci infiniment .
|
|
lundi 4 septembre 2006 à 11:49:09 |
Re : Pb de lecture de valeur décimale avec Excel

meech
|
Salut,
Bon, je n'ai pas d'Excel sous la main donc je ne peux pas faire de test. Ceci étant, je te propose de vérifier, avant l'appel de la ligne 4, si toutes les variables sont différentes de NULL :
- worksheet_TP -
worksheet_TP->Range[_com_util::ConvertStringToBSTR(s)] -
worksheet_TP->Range[_com_util::ConvertStringToBSTR(s)]->Value
Ciao.
|
|
lundi 4 septembre 2006 à 13:39:20 |
Re : Pb de lecture de valeur décimale avec Excel

amalcon
|
Salut,
En fait, je fais une boucle sur toutes mes lignes de mon fichier excel et sur le nombre de colonne contenant des données. Ca plante au niveau de la cellule contenant une valeur décimale (ligne 28 dans le fichier excel), sachant que pour les lignes précédentes, il n'y avait pas de pb. Je ne pense donc pas que se soit un pb de variable à NULL. Toutefois, j'ai essayé de rajouter une vérif, mais le code ne compile pas : if((worksheet_TP -> Range[_com_util::ConvertStringToBSTR(s)] -> Value)==NULL) MessageBox("Null",NULL,MB_OK); else lu = worksheet_TP -> Range[_com_util::ConvertStringToBSTR(s)] -> Value; Ca me renvoie l'erreur :" error C2666: '==' : 9 overloads have similar conversions". C'est dommage, s'il faut dans ce cas ca renvoie NULL et du coup, je peux éviter à mon interface de planter (et pour ces valeurs, trouver une autre solution)...
Merci quand même.
|
|
samedi 9 septembre 2006 à 00:30:36 |
Re : Pb de lecture de valeur décimale avec Excel

aldoniel
|
Si au pire ça veut toujours pas marcher, tu peux faire exporter ton fichier excel au format CSV.
Les séparateurs c'est le ; et "
ex :
"A1";"B1"
"A2";"B2"
Quand une cellule contient ", on le note ""
Une cellule peut contenir un saut (\n) qui dans le fichier CSV est noté (\n) et pas (\r\n) comme dans du texte.
Bon, c'est un palliatif bourrin (je quitte à peine le C)
|
|
jeudi 14 septembre 2006 à 18:10:56 |
Re : Pb de lecture de valeur décimale avec Excel

amalcon
|
Je viens donner quelques nouvelles : pas de solutions à mon problème surnaturel  . Enfin, merci à toi aldoniel pour ton idée de csv. J'ai pu grace à ca faire un code plus que bourrin, mais qui lit enfin ces p.... des données. Je pensais au début que j'aurais le même problème que pour les fichiers textes (les espaces et autres sont autorisés dans les celulles), mais finalement, j'ai pu m'en sortir. Comme je connaissais le nombre de colonne (et donc de ; ) et que la derniere colonne est un VRAI/FAUX, j'y suis enfin arrivée. Bon, manque plus qu'a tenir compte des éventuels ; et " qui peuvent être dans les cellules et c'est bon (ca va être chiant quand même). J'en aurai perdu du temps sur ce truc con. Pour info, il y en a qui ont essayé de reproduire mon problème? pour savoir si c'est mes fichiers, mon appli, mon code, je ne sais quoi, qui sont pourris (ou si une force obscure jusque là inconnue c'est manifesté) ? Enfin, merci à tous ceux qui m'ont répondu  .
|
|
Cette discussion est classée dans : texte, lire, excel, valeur, décimale
Répondre à ce message
Sujets en rapport avec ce message
Lire un fichier texte ! [ par arconius ]
Voilà j'ai créer un jeux galaxian dans lequel je marque des points en tuant des ennemis. J'arrive à eccrire mon score dans un fichier texte mais je n'
lire/ecrire fichier texte a plusieurs colonnes [ par denini ]
voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier
ecrire et lire un fichier texte [ par denini ]
voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier
Lire une ligne d'un fichier texte [ par CassusGreg ]
Salut à tous,Est-ce-qu'il existe une fonction pour lire une ligne de texte (terminé par 0x0D 0x0A) dans un fichier?Je suis sous VC++ 6merci
Ouvrir et lire un fichier txt [ par pirana ]
Bonjour à tous jaimerai faire un programme qui me permet d'ouvrir un fichier txt puis le lire jusqua la fin( normalement avec une boucle while(!feof(f
Probleme c++ lire une byte Binaire =26 ou =13 [ par WINACreve ]
Situation: Je fait un programme qui ouvre n'importe quel fichier et lit chacune de ces bytes 1 par 1 et garde en mémoire leurs valeur.Problème #1: lor
lire une ligne dans un fichier texte puis........ [ par oudkaramla ]
salut out le monde,je veux lire 3 lignes d'un fichier texte, puis faire le découpage de chaque ligne en petits morceauxje sais qu'il ft faire fopen()
Lire un fichier Texte Ligne par ligne [ par Ricpperso ]
Bonjour,bon je fai un pti proget je voudrai savoir comment on fais pour lire un fichier Texte ligne par ligne, avec si possible le Cfile.merci d'avanc
lire un .doc ou .rtf [ par cybermax62 ]
je voudrais lire un de ces format en c++.de préférence le .rtf,je pense, car le texte restera très simple. En fait je veux surtout conserver grâce à c
lire et ecrire dans une celule excel en visual C [ par stephan007 ]
Salut les programmeurs,Ma question est simple, Comment lire et ecrire dans une celule excel. Y'aurait il une personne parmis tout ce beau monde pour n
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|