A dire il vero ero un po' indeciso se scrivere questa domanda su programmazione o su windows&software. E' un problema di programmazione ma collegato a un comportamento di excel che mi lascia perplesso. Spero vada bene qui.
Ho ereditato una form che legge un file excel. Si estrae il valore delle varie celle con un'istruzione ole2.char_property(cella,'VALUE');
di recente, è cambiato il file excel che ci arriva e non riesco più a leggere correttamente un campo. In pratica, l'istruzione mi restituisce solo il primo carattere (se era, p.es. '1002', legge solo '1').
Questo è l'aspetto strano :
Prima, le celle (alfanumeriche di contenuto) erano definite numeriche ma trattate come alfanumeriche (p.es. '0002' veniva visualizzato correttamente così, con tutti gli zeri del caso) fino a che non ci cliccavo sopra con il mouse. Nel momento in cui lo facevo, excel si accorgeve di colpo che erano numeriche e le trattava di conseguenza.
Facendo in quel modo (cliccandoci sopra in modo che excel si accorga ceh sono numeriche), fa anche sì che la mia applicazione le legga in modo errato (solo il primo carattere, coem nel nuovo formato)
Adesso, il file mi arriva con il campo in formato generale. Ho constatato che riesco a far girare tutto correttamente a patto di 1) cambiare il formato cella a 'testo' 2) una volta che il formato celal è quello, cliccandoci sopra perhè excel se ne ricordi (la visualizzazione su excel è corretta, ma evidentemente da qualche parte si ricorda il vecchio formato finchè non gli dico di controllare).
Ho alcune perplessità :
Cosa caspiteronzola sta succedendo? E cosa caspiteronzolissima posso fare?
Esiste un modo per leggere correttamente il contenuto della cella indipendentemente dal tipo? Se no, Esiste, se non altro, un modo per dire a excel di controllare e adeguare i formati delle varie celle dopo averle cambiate, in modo che al ole2.char_property me le legga correttametne?
Andare ogni volta a aprire il file per cambiare il formato delle celle selezionandole in blocco sarebbe una soluzione bruttina ma accettabile (il file nn è frequentissimo). Scorrermelo ogni volta a mano per cliccare su ogni casella perchè excel si accorga di cosa sta succedendo è un'altro discorso ( il file è gorssino)