Newsgroup: it.comp.appl.access
Titolo: [3/5 OT]  Come importare file csv in Excel mantenendo uno 0030 com testo ?

Allora, da procedura Access creo un file di testo e gli appioppo 
l'estensione csv
Il file e' composto da tante righe ognuna con il contenuto di alcuni campi 
di una tabella, separati da un punto e virgola
Se vado a doppiocliccare sul file, il sistema, essendoci installato Excel ed 
essendo l'eseguibile associato all'estensione CSV, mi apre Excel ed avvia la 
lettura del file
Lettura che avviene correttamente se non che, il contenuto di un campo 
alfanumerico, che contiene pero' un valore composto solo di numeri 0030, 
viene 'convertito' da Excel in campo numerico e nella casellina vedo un 30 
allineato a destra
Allora ho provato a scrivere su Excel, nella casellina dedicata a contenere 
0030, un  '0030
Ed excel correttamente viene informato che quello e' un valore alfanumerico 
e mostra 0030 alineato a sinistra
Bene, lo salvo, vado a vedere con un editor esadecimale cosa c'e' dentro ed 
effettivamente c'e'  0030 sul campo
Lo rileggo con Excel e mi ritorna il 30 allineato a destra
La domanda e':  volendo costruire un file csv, come fare per informare Excel 
che il valore di un certo campo e' alfanumerico  (anche se contiene solo 
cifre) ?
Ciao e grazie
RobertoA

RobertoA ha scritto:

Mettilo tra doppi apici: .....;"0030";.....
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 -Marco-
Gia' provato, non funziona, ti legge sempre un numero
Ho provato con l'apice singolo col doppio, sia davanti che entrambi che solo 
dietro, niente
Ciao e grazie
RobertoA

 ha scritto nel messaggio 
news:4c99...@newsgate.x-privat.org...

In Excel da formato, celle è possibile impostare il formato in "Testo".
Qualunque sia il formato di origine, si può impostare il formato in "testo" 
nelle specifiche di importazione di Access.
Saluti
Thomas.az
 


Si, lo so, se stai lavorando con un file formato Excel basta anteporre un 
apice al numero ed Excel te li tratta come testo
Il problema e' che vorrei avere un file in formato csv e quindi solo testo 
separato da punto e virgola, con dei campi alfanumerici, che contengono 
(casualmente) solo numeri
Durante la conversione da csv a suo formato interno, Excel, quando 'vede' 
dei numeri li tratta come numeri appunto, allineandoli a destra
Non c'e' verso di fargli capire che voglio trattarli come caratteri 
alfabetici
Ciao e grazie
RobertoA

 ha scritto nel messaggio 
news:4c9dcfd8$1...@newsgate.x-privat.org...

Io non dicevo di anteporre un apice al numero ma di formattare come Testo 
tutte le celle del foglio di lavoro dalla barra dei menu "formato" e poi 
"celle".
Salvando in formato csv o meglio in formato csv(dos) dovresti ottenere il 
risultato atteso.
Ciao
Thomas.az 


Definire come testo o metterci l'apice davanti sono operazioni che si 
equivalgono
Il problema non sta nel salvataggio
Se definisci una zona di celle come 'testo', Excel salva in csv 
correttamente e quindi lo 0030 lo salva come 0030 (visto da un editor 
esadecimale)
Il problema e' nella successiva lettura, il testo 0030 come presente nel 
file, viene convertito automaticamente in numerico, visualizzato come 30 ed 
allineato a destra
Ciao
RobertoA

RobertoA ha scritto:



Cambia l'estensione del file in .txt, poi vai in Excel e prova ad
importarlo.
Mentre i .csv li legge subito, con i .txt (o .prn) parte una procedura in
cui puoi definire i vari parametri. Quando arrivi al passaggio 3 "Formato
dati per colonna" seleziona una per una le colonne e imposta su tutte il
formato testo. Cosě facendo non serve nemmeno mettere i doppi apici nel
file.
Questo se lo devi fare una tantum. Se invece č una procedura che va
ripetuta frequentemente, visto che i dati provengono da Access stai meno a
scrivere una sub di automazione che apra Excel e compili la tabella.



Grazie per la risposta
Ho provato anche a cambiare in txt l'estensione
Ma tira su tutta la riga nella prima casella di Excel, in pratica 'attacca' 
tutti i campi insieme e li tratta come testo mettendoli nella prima cella 
della colonna
Non vorrei usare il formato di Excel per due ragioni, la prima che non so se 
la postazione disponga di Excel installato (applicativo del quale Access 
userebbe le librerie), la seconda e' per evitare problemi di versione
Magari preparo il file in versione Office 10 e verra' importato da Office 9, 
quindi sara' impossibile l'importazione
Ma credo che insistendo col csv non se ne tiri fuori un ragno dal buco e 
quindi a malincuore dovro' ripiegare sul formato Excel
Ciao
RobertoA

 della colonna
Nella seconda schermata di importazione devi selezionare il giusto
separatore. Il predefinito è la tabulazione, sicuramente nel tuo file ne
usi un altro.


 
chiarito che la soluzione che hai pensato pare avere qualche problema e 
non essere fattibile, prova a descrivere l'esigenza.
perche' devi fare questa esportazione?
come verra' utilizzato il file esportato?
da che programma?
la soluzione che hai pensato tu e' l'esportazione in csv, ma con qualche 
dettaglio in piu' magari ti si possono dare indicazioni piu' efficaci...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 dettaglio in piu' magari ti si possono dare indicazioni piu' efficaci...
Certo
Da una procedura Access devo esportare dei dati in formato Excel, questo e' 
stato richiesto dal fornitore di altra procedura informatica
Dopo qualche scontro sulla versione di file Excel da usare, mi accorgo che 
non tutti i clienti che dovranno esportare hanno installato Excel
E quindi le routine di Access, non trovando le librerie di Excel non 
funzionerano
Quindi, per ovviare al formato file Excel da usare e per ovviare al fatto 
che i clienti che dovranno esportare i dati alcune volte non dispongono di 
Office, ho proposto di usare un file di testo, indipendente da qualsiasi 
versione di Office, creabile da Access anche senza Excel installato, 
leggibile perfettamente da qualsiasi editor
Bene, preparata la routine di esportazione, invio al produttore del secondo 
gestionale, gli 'importatori' del file
Il risultato e' un file di testo con i campi separati da un punto e virgola, 
file con estensione csv
La lettura in Excel del file procede perfettamente, a parte un campo
Questo campo ha contenuti numerici (per il momento) ma in futuro potra' 
avere anche lettere al suo interno, quindi dal punto di vista del gestionale 
e' una stringa
Una stringa, attualmente riempita con sole cifre numeriche
Cosa succede?
Durante l'esportazione la mia procedura vede il campo stringa, ne legge il 
contenuto (ad esempio 0030) e lo scrive sul file di testo
Con un editor qualsiasi si vede che il campo nel file di testo viene scritto 
correttamente come 0030 e poi il punto e virgola per separarlo da altro 
campo
Quando Excel tenta di aprire il file, vedendo un numero, converte il tipo di 
quel campo in numerico, difatti nella celletta di Excel viene visualizzato 
un 30 allineato a destra
Bon, e' questo il problema, non riesco a far capire ad Excel che quel campo 
e' una stringa e non un numerico
Ciao
RobertoA

 
dalla descrizione che hai fatto, a me sembra che tu stia facendo il 
lavoro degli 'altri', ma magari e' giusto cosi'...
detto questo, perche' non usare un mdb per lo scambio dati?
dopotutto il formato di scambio l'avete concordato; a meno di altri 
requisiti che non hai indicato, scegliere un formato piuttosto che un 
altro non dovrebbe creare troppi problemi.
invece di realizzargli tutta la procedura d'importazione, gli spieghi 
come leggere un mdb; dovresti impiegare meno tempo e ottenere lo stesso 
risultato.
concordate la versione di mdb, concordate l'installazione della versione 
corretta del jet e dovreste aver risolto tutti i problemi di 
conversione/tipodati/salsignorecos'altro.



La mia domanda non e' finalizzata a riuscire nel passaggio dei dati da un 
gestionale all'altro
Quello lo facciamo in un modo o nell'altro
Mi sono imbattuto in un problema per me nuovo e volevo assicurazioni 
sull'impossibilita' di trovare una soluzione a questo problema specifico, 
prima di cambiare strada
Parlo della conversione che Excel fa 'di testa sua'  tramutando un testo in 
numero
Mi sembrava un'ottimo sistema il csv, un formato non proprietario, 
indipendente dalla versione file, leggibile da qualsiasi sistema
Solo che Excel se lo importa un po' come pare a lui e mi par di capire non 
ci sia modo di forzare la sua visione verso altre direzioni
Ciao


Prova a mettere il numero tra " preceduto dal carattere =. 
Invece di 30 devi scrivere nel file csv ="30"

Grazieeeeeee....funziona!



Grazie mille. Mi serviva proprio questo suggerimento.


FUNZIONA. Tanto facile quanto geniale: forzare l'esecuzione di una formula.