2013-05-05 3 views
1

Я получаю имена листов от excel и создаю кнопки, текст которых является именем листа.остановить сортировку имени листа из excel в asp.net

Но каждый раз, когда кнопки создаются, они сортируются в алфавитном порядке. Я не хочу их сортировать.

Вот мой код:

Dim objConn As OleDbConnection = Nothing 
    Dim dt As System.Data.DataTable = Nothing 

    Try 

     Dim connString As String = "" 

     If Extension = "xls" Or Extension = ".xls" Then 

      connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileUploadPath & sender.text & ";Extended Properties=" + Convert.ToChar(34).ToString() + "Excel 8.0;HDR=No;IMEX=1" + Convert.ToChar(34).ToString() + "" 

     ElseIf Extension = "xlsx" Or Extension = ".xlsx" Then 

      connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FileUploadPath & sender.text & ";Extended Properties=" + Convert.ToChar(34).ToString() + "Excel 12.0;HDR=No;IMEX=2" + Convert.ToChar(34).ToString() + "" 

     End If 

     objConn = New OleDbConnection(connString) 

     objConn.Open() 

     dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) 

     If Not dt Is Nothing Then 

      Dim i As Integer = 1 

      For Each row As DataRow In dt.Rows 
       Dim btn As Button = New Button 
       btn.ID = "btnSheet" & i 
       btn.Text = row("TABLE_NAME").ToString().Substring(0, row("TABLE_NAME").ToString.Length - 1) 
       excelSheetButtonsList.Add(btn) 
       tdInfo.Controls.Add(btn) 
       tdInfo.Controls.Add(New LiteralControl(" ")) 
       AddHandler btn.Click, AddressOf ExcelSheetNameButtons_Click 
       i += 1 
      Next 

     End If 

    Catch ex As Exception 

    Finally 

     If objConn IsNot Nothing Then 
      objConn.Close() 
      objConn.Dispose() 
     End If 
     If dt IsNot Nothing Then 
      dt.Dispose() 
     End If 

    End Try 

Изображение 1 является выходом вышеуказанного кода:

enter image description here

Теперь изображение 2 описывает Excel лист:

enter image description here

Я wa nt мой вывод в порядке, как на картинке 2.

+0

Возможный дубликат [этот вопрос] (http://stackoverflow.com/questions/995984/get-index-of-the-excel-sheet-using-asp-net?rq=1), хотя это не имеет подтвержденный ответ. См. [Здесь] (http://forums.asp.net/t/1783814.aspx/1) и ссылайтесь на принятый ответ, связанный [здесь] (http://csharpdotnetfreak.blogspot.com/2011/12/upload- and-read-excel-file-in-aspnet.html) –

+0

Я не полная бутылка, но вы можете использовать объект excel для их получения? Это сохранит порядок. – glh

+0

@DavidZemens Я ссылался на последнюю ссылку, которую вы предоставили, и оттуда я получил код, который отображается в вопросе. Но там также отсортированы имена листов. – Vishal

ответ

1

Один (хотя и не очень надежный) способ сортировать полученный DataTable (путем создания DataView на его основе) сортировать его по столбцам DateCreated или DateModified.

Смежные вопросы