पढ़ें कई एक्सेल शीट में एक सूची दृश्य

0

सवाल

मैं कोशिश कर रहा हूँ पढ़ने के लिए है कि एक एक्सेल फ़ाइल में एकाधिक पत्रक 1,2,3,4,5,6,7,8,9,10

मैं पढ़ने के लिए की जरूरत कई स्तंभों में क्या है की उन चादरों से उदाहरण के लिए श्रेणी a1: a20 और c1: c20

परिणाम लिस्टिंग है यह एक सूची दृश्य में, मैं कोशिश कर रहा हूँ के साथ कई सुझाव है कि दिखाई देते हैं मंच में है, लेकिन यह केवल अनुमति देता है पढ़ने के लिए मुझे एक चादर और मैं की जरूरत है पढ़ने के लिए एक ही समय में कई. वैसे भी मैं कोड डाल दिया है कि मैं का उपयोग कर रहा हूँ.

धन्यवाद अग्रिम में

Public Class Frm_ImportarLibro
    Public Function Obtenerdatos(ByVal ruta As String, ByVal hoja As String, ByVal rango As String) As DataTable


        Dim cadenaConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=NO';" &
                                       "Data Source=" & ruta


        Using cnn As New OleDbConnection(cadenaConexion)


            Dim cmd As OleDbCommand = cnn.CreateCommand()
            cmd.CommandText = String.Format("SELECT * FROM [{0}${1}]", hoja, rango)
            Dim da As New OleDbDataAdapter(cmd)
            Dim dtTemp As New DataTable("Prueba")
            da.Fill(dtTemp)
            Dim dt As DataTable = dtTemp.Clone()
            Dim rows As DataRow() = dtTemp.Select()

            For index As Integer = 0 To rows.Count - 1
                Dim row As DataRow = rows(index)
                If (row.Item(0) Is DBNull.Value) Then
                    Exit For
                End If

                dt.ImportRow(row)
            Next

            Return dt

        End Using

    End Function
1

सबसे अच्छा जवाब

0

मुझे विश्वास है कि यह होगा एक बात के माध्यम से पाशन चादरें और लोड हो रहा है एक DataTable के लिए प्रत्येक चादर तो है जो करने के लिए जोड़ा एक डाटासेट. मेरे कोड मानता है कि एक ही रेंज में प्रयोग किया जाता है के लिए प्रत्येक पत्रक. मैं सीमा सन्निहित है, क्योंकि यह होगा की आवश्यकता होती है एक अलग आदेश के लिए प्रत्येक गैर-निरंतर रेंज. मेरा मानना है कि यह आसान हो जाएगा की अनदेखी करने के लिए बाहरी डेटा में जिसके परिणामस्वरूप DataTable.

Private cadenaConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=NO';Data Source="
Private rango As String = "A1:C20"

Private Function GetXLSheetNames(path As String) As List(Of String)
    Dim SheetNames As New List(Of String)
    Dim dt As DataTable
    Using cn As New OleDbConnection(cadenaConexion & path)
        cn.Open()
        dt = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
    End Using
    For Each row As DataRow In dt.Rows
        Dim s = row("Table_Name").ToString
        SheetNames.Add(s)
    Next
    Return SheetNames
End Function

Public Function Obtenerdatos(ByVal ruta As String, ByVal hoja As String, ByVal rango As String) As DataSet
    Dim ds As New DataSet
    Dim lst = GetXLSheetNames(ruta)
    Using cnn As New OleDbConnection(cadenaConexion & ruta),
            cmd As New OleDbCommand()
        cmd.Connection = cnn
        cnn.Open()
        For Each s In lst
            Dim dt As New DataTable(s)
            cmd.CommandText = $"SELECT * FROM [{s}{rango}]"
            Using reader = cmd.ExecuteReader
                dt.Load(reader)
            End Using
            ds.Tables.Add(dt)
        Next
    End Using
    Return ds
End Function
2021-11-24 07:33:37

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में