Van datagrid naar excel maar past niet in cel

Status
Niet open voor verdere reacties.

Koppelstukje

Gebruiker
Lid geworden
20 jul 2011
Berichten
19
Hoi,

Ik gebruik deze code om van datagrid naar excel te exporteren, en dat gaat goed.

Maar sommige dingen die in de datagridview staan zijn tegroot om in een standaard cel te worden gekopieerd.

Dit is het resultaat ######## , dit komt omdat de cel niet groot genoeg is.
Als de cel iets groter gemaakt wordt is het goed.

Is er iets om de cel te laten aanpassen aan de grote van het woord ?

Mijn code is
Code:
  Dim xlApp As Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        Dim i As Int16, j As Int16

        xlApp = New Excel.Application
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("Blad1")

        For i = 0 To DataGridView1.RowCount - 2
            For j = 0 To DataGridView1.ColumnCount - 1
                xlWorkSheet.Cells(i + 1, j + 1) = DataGridView1(j, i).Value.ToString()
            Next
        Next

        xlWorkBook.SaveAs("c:\image.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, _
         Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
        xlWorkBook.Close(True, misValue, misValue)
        xlApp.Quit()

        releaseObject(xlWorkSheet)
        releaseObject(xlWorkBook)
        releaseObject(xlApp)

        MessageBox.Show("Over")
    End Sub

    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
            MessageBox.Show("Exception Occured while releasing object " + ex.ToString())
        Finally
            GC.Collect()
        End Try
 
Laatst bewerkt:
Is opgelost,

Heb wat anders gevonden, slaat alleen op als xml maar dat is niet erg

Was in C# geschreven , maar even omgezet en klaar.

Code:
   Dim fs As New IO.StreamWriter("C:\Data.xml", False)
        fs.WriteLine("<?xml version=""1.0""?>")
        fs.WriteLine("<?mso-application progid=""Excel.Sheet""?>")
        fs.WriteLine("<ss:Workbook xmlns:ss=""urn:schemas-microsoft-com:office:spreadsheet"">")
        fs.WriteLine("    <ss:Styles>")
        fs.WriteLine("        <ss:Style ss:ID=""1"">")
        fs.WriteLine("           <ss:Font ss:Bold=""1""/>")
        fs.WriteLine("        </ss:Style>")
        fs.WriteLine("    </ss:Styles>")
        fs.WriteLine("    <ss:Worksheet ss:Name=""Sheet1"">")
        fs.WriteLine("        <ss:Table>")
        For x As Integer = 0 To DataGridView1.Columns.Count - 1
            fs.WriteLine("            <ss:Column ss:Width=""{0}""/>",
                         DataGridView1.Columns.Item(x).Width)
        Next
        fs.WriteLine("            <ss:Row ss:StyleID=""1"">")
        For i As Integer = 0 To DataGridView1.Columns.Count - 1
            fs.WriteLine("                <ss:Cell>")
            fs.WriteLine(String.Format(
                         "                   <ss:Data ss:Type=""String"">{0}</ss:Data>",
                                       DataGridView1.Columns.Item(i).HeaderText))
            fs.WriteLine("                </ss:Cell>")
        Next
        fs.WriteLine("            </ss:Row>")
        For intRow As Integer = 0 To DataGridView1.RowCount - 2
            fs.WriteLine(String.Format("            <ss:Row ss:Height =""{0}"">",
                                       DataGridView1.Rows(intRow).Height))
            For intCol As Integer = 0 To DataGridView1.Columns.Count - 1
                fs.WriteLine("                <ss:Cell>")
                fs.WriteLine(String.Format(
                             "                   <ss:Data ss:Type=""String"">{0}</ss:Data>",
                                           DataGridView1.Item(intCol, intRow).Value.ToString))
                fs.WriteLine("                </ss:Cell>")
            Next
            fs.WriteLine("            </ss:Row>")
        Next
        fs.WriteLine("        </ss:Table>")
        fs.WriteLine("    </ss:Worksheet>")
        fs.WriteLine("</ss:Workbook>")
        fs.Close()
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan