VB.Net ed Excel: formattare i dati contenuti nelle celle

Dopo secoli da queste parti si torna a parlare di Vb.Net, e della sua interazione con Excel. Lo faccio riportando uno scambio di mail con Salvatore, iniziato da una sua richiesta di aiuto alla quale poi lui stesso ha dato una risposta:

Salvatore mi scrive:

Ciao Davis,
ho preso come riferimento il tuo codice Vb.Net per esportare in Excel che funziona benissimo. Un problema che mi assilla e’ che su determinati campi devo esportare dei numeri di telefono e me li esporta senza lo “0” iniziale, oppure un altro dato deve essere così “359213000112892” invece e’ così: 3,59213E+14.
Sai darmi qualche info? Anticipatamente ti ringrazio.
Saluti, Salvatore.

Io rispondo:

Ciao,
non è un problema di esportazione ma di formattazione delle celle. Excel vedendo dei numeri li interpreta come tali e quindi gli zeri davanti sono ininfluenti e i numeri troppo grandi li rappresenta in funzione di un esponente. A te invece serve che vengano rappresentati come stringhe quindi devi andare ad agire sulla formattazione, selezionando la colonna del campo che ti da problemi e dicendogli di considerarla come testo: (tasto destro -> formato celle -> categoria: testo). Questo però, soprattutto per il fatto degli 0 iniziali, andrebbe fatto a priori; probabilmente il modo per impostare la formattazione direttamente da VB.NET ci sarà, ma sinceramente non l’ho mai fatto e purtroppo non ti so dire. Un’alternativa che posso consigliarti, se nel tuo caso è applicabile, è crearti un file Excel che ti fa da Modello, vuoto, con le colonne già formattate. Ho scritto un articolo al riguardo, vedi se ti può interessare una soluzione del genere.
Spero di esserti stato di aiuto. Fammi sapere.
Ciao, Davis

Salvatore, trova la soluzione, e me la illustra:

Davis,
Intanto grazie per la cortesia.
Se ti puo’ essere utile ho trovato il sistema per formattare le colonne in base a cosa ti serve. Ad esempio:

'formatta come testo normale e quindi risolve il problema dello 0 ad inizio numero
ExcelSheet.Cells(1, 10).EntireColumn.NumberFormat = "@"

'formatta come valore numerico
ExcelSheet.Cells(1, 19).EntireColumn.NumberFormat = "#"

'formatta le celle come date nel formato indicato, che in questo caso è come mi serviva
ExcelSheet.Cells(1, 26).EntireColumn.numberformat = "ggMMaaaa"

Spero di essermi spiegato e di essere stato utile.
Ringraziandoti porgo distinti saluti,
Salvatore

Questi sono i casi in cui emergono tutta l’utilità e la potenza di un mezzo come i blog. Fantastico.

This entry was posted in $1$s. Bookmark the permalink.

One thought on “VB.Net ed Excel: formattare i dati contenuti nelle celle

  1. ciao Davis,
    ho un problema con la formattazione del testo nelle celle. ho il testo a capo ma quando stampo il testo (o meglio aclune parole) rimango fuori dai bordi delle celle. le ho provate tutte..
    mi aiuti please?
    ciao e grazie

    Mary

Leave a Reply

Your email address will not be published. Required fields are marked *