मैं लूप का उपयोग करके और सेल द्वारा सेल लिखकर एक्सेल फ़ाइल में डेटाग्रिड व्यू से डेटा निर्यात करने में सफल रहा, लेकिन समस्या यह है कि मेरे पास 2000 से अधिक पंक्तियां हैं इसलिए निर्यात प्रक्रिया में काफी समय लगता है। मेरा प्रश्न है: क्या कुछ बदलना है ताकि मैं निर्यात समय को कम कर सकूं? धन्यवाद

'exporter
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    xlApp = New Excel.Application
    xlBook = xlApp.Workbooks.Open(Filename:=Path.Combine(Application.StartupPath, "EMP_.xlsx"), IgnoreReadOnlyRecommended:=True, ReadOnly:=False, Editable:=True)
    xlSheet = xlBook.Worksheets(1)
    If DataGridView1.DataSource IsNot Nothing Then
        Dim i, j As Integer
        For i = 1 To DataGridView1.RowCount - 1
            For j = 1 To DataGridView1.ColumnCount
                xlSheet.Cells(i + 1, j) = DataGridView1.Rows(i - 1).Cells(j - 1).Value
            Next
        Next
        xlApp.Visible = True
        xlApp.UserControl = True
        xlApp.Quit()
        xlApp = Nothing
    Else
        MsgBox("Le tableau est vide")
    End If
End Sub
0
Charaf eddine 15 अप्रैल 2020, 15:07

1 उत्तर

सबसे बढ़िया उत्तर

यकीन नहीं होता कि यह कुछ खुला भी हो सकता है। संयोग से यदि आप डेटाग्रिड व्यू के डेटासोर्स को डेटाटेबल पर सेट करके अपना डेटाग्रिड व्यू लोड कर सकते हैं तो निम्नलिखित एक विकल्प होगा।

SpreadSheetLight (NuGet के माध्यम से स्थापित) का उपयोग करके आप नीचे दिए गए नमूने जैसे फ़ंक्शन का उपयोग कर सकते हैं। निम्नलिखित में पास करें, पूर्ण पथ और फ़ाइल का नाम, शीट का नाम, DataGridView से DataTable उदा। Dim dt As DataTable = CType(DataGridView1.DataSource,DataTable) और अंतिम तर्क यदि सही में कॉलम हेडर (डेटा कॉलम नाम) शामिल हैं या गलत कॉलम नाम शामिल हैं। स्प्रेडशीटलाइट होम पेज

Public Sub SimpleExportRaw(
    pFileName As String,
    pSheetName As String,
    pDataTable As DataTable,
    pColumnHeaders As Boolean)

    Using doc As New SLDocument()
        doc.SelectWorksheet(pSheetName)
        doc.ImportDataTable(1, SLConvert.ToColumnIndex("A"), pDataTable, pColumnHeaders)
        doc.SaveAs(pFileName)
    End Using

End Sub
0
Karen Payne 15 अप्रैल 2020, 13:17