Devo esportare i dati da una gridview in un file di testo, da far scaricare all'utente.
I campi devono avere larghezza fissa.
Ho un problema con i caratteri accentati, in quanto nel mio file la à diventa Ã, la ò diventa ò eccetera; se apro il file con Notepad questo non si nota,
la à si vede à ecc., se provo ad importare il file in Excel, la stringa di larghezza fissa ha un carattere in più.
presumo sia un problema che si crea nella creazione del file con la StringBuilder, ma non rieco a capire come risolvere.
per creare la stinga di lunghezza fissa uso:
strContatto = Left(lblContatto.Text.PadRight(30), 30)
creo un oggetto StreamWriter col metodo AppendText
Dim objSW As StreamWriter
objSW = File.CreateText(Percorso + "Elenco")
poi unisco i vari campi con StringBuilder
Dim strB As New StringBuilder
strB.Append(strContatto)
strB.Append(strNaz)
eccetera
scrivo le righe nel file creato con
objSW.WriteLine(strB.ToString)
infine permetto all'uente di scaricare il file
Dim fs As System.IO.FileStream = Nothing
fs = System.IO.File.Open(Percorso + "Elenco", FileMode.Open)
Dim btFile(fs.Length) As Byte
fs.Read(btFile, 0, fs.Length)
fs.Close()
With Response
.AddHeader("Content-disposition", "attachment;filename=" & "xxxxxx.txt")
.ContentType = "application/octet-stream"
.BinaryWrite(btFile)
.End()
End With
Grazie per l'aiuto
Roberto