Oppure

Loading
13/03/13 12:25
antoniobar
Salve, ho questo codice che mi permette di aprire un file di testo e dividerlo in una datagrid e salvarlo in excel!!! Ma mi dà errori: se il file di testo ha delle linee troppo lunghe non li visualizza nella datagrid e nel file excel mi salva soltanto le linee con lunghezza fissa altrimenti mi dà errore!!!


Imports Microsoft.Office.Interop.Excel
Imports System.Text
Public Class data
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
Dim fname As String = OpenFileDialog1.FileName
If System.IO.File.Exists(fname) Then
Dim read As New System.IO.StreamReader(fname)
TextBox1.Text = read.ReadToEnd
read.Close()
TextBox1.Text = OpenFileDialog1.FileName
End If
Dim leggi As New System.IO.StreamReader(TextBox1.Text, Encoding.GetEncoding(1252))
Dim riga As String
Dim dividi() As String
Do While leggi.Peek() <> -1
riga = leggi.ReadLine()
dividi = Split(riga, "-";) 'separatore
DataGridView1.ColumnCount = dividi.Count 'creo numero di colonne in base al testo
DataGridView1.Rows.Add(dividi)
Loop
End Sub
Private Sub VisualizzaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VisualizzaToolStripMenuItem.Click
Me.Hide()
pro.Show()
End Sub

Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim programma As Application
Dim cartella As Workbook
Dim foglio As Worksheet
programma = CreateObject("excel.application";)
programma.Visible = True
cartella = programma.Workbooks.Add
foglio = cartella.ActiveSheet
Dim a As Integer
Dim b As Integer
Dim testo As String
For a = 0 To DataGridView1.RowCount - 2
testo = ""
For b = 0 To 9
foglio.Cells(a + 1, b + 1) = DataGridView1.Rows(a).Cells(b).Value
Next
Next
End Sub
End Class
aaa
14/03/13 18:16
antoniobar
qualcuno mi aiuta?????grazie
aaa
14/03/13 19:11
Renny
Hai provato mettendo:
 foglio.Cells(a + 1, b + 1).Value2 = DataGridView1.Rows(a).Cells(b).Value 

?
Comunque dovresti specificare cosa intendi per "mi da errore".. appare un messaggio in particolare o il codice non fa quello che chiedi?
Se cerchi su google ci sono svariati esempi di come si esporta i dati da datagrid a excel...
aaa