Hemil Gandhi Ответов: 1

Система автоматически импортировать Excel в SQL


Я пытаюсь построить веб-приложение, в котором я должен загрузить сгенерированный системой лист excel и импортировать данные в SQL, я попробовал приведенный ниже код, но он работает только в том случае, если я открываю excel do save as excel перед его загрузкой.

Пожалуйста помочь..

Кроме того, мне нужно удалить некоторые конкретные строки excel перед загрузкой.

Что я уже пробовал:

Dim excelPath As String = Server.MapPath("~/Uploads/") + Path.GetFileName(FileUpload1.PostedFile.FileName)
FileUpload1.SaveAs(excelPath)

Dim connString As String = String.Empty
Dim extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
Select Case extension
    Case ".xls"
        'Excel 97-03
        connString = ConfigurationManager.ConnectionStrings("Excel03ConString").ConnectionString
        Exit Select
    Case ".xlsx"
        'Excel 07 or higher
        connString = ConfigurationManager.ConnectionStrings("Excel07+ConString").ConnectionString
        Exit Select
End Select

connString = String.Format(connString, excelPath)
Using excel_con As New OleDbConnection(connString)
    excel_con.Open()
    Dim sheet1 As String = excel_con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing).Rows(0)("TABLE_NAME").ToString()
    Dim dtExcelData As New DataTable()

    Using oda As New OleDbDataAdapter((Convert.ToString("SELECT * FROM [") & sheet1) + "]", excel_con)
        oda.Fill(dtExcelData)
    End Using
    excel_con.Close()

    Dim conString As String = ConfigurationManager.ConnectionStrings("SQLDbConnection").ConnectionString
    Using con  As New SqlConnection(conString)
        Using sqlBulkCopy As New SqlBulkCopy(con)
            'Set the database table name
            sqlBulkCopy.DestinationTableName = "dbo.TESTTBL"
            con.Open()
            sqlBulkCopy.WriteToServer(dtExcelData)
            con.Close()
        End Using
    End Using
End Using

MadMyche

Пожалуйста, не используйте все ALLCAPS, что считается криком. Пожалуйста, оберните ваш код в кодовый блок. Вы можете использовать Improve question виджет выше этого, чтобы сделать именно это.

Тогда я подумаю о том, чтобы прочитать его

Hemil Gandhi

Спасибо за совет, я сделал соответствующие изменения

1 Ответов

Рейтинг:
2

Richard Deeming

Если вам это нужно "сохранить как Excel" перед загрузкой файл, который вы загружаете, не является допустимым файлом Excel. Вам нужно исправить код, который генерирует файл, а не код, который его обрабатывает.

Что касается удаления "некоторые конкретные строки" перед загрузкой вам нужно либо открыть файл и удалить строки перед загрузкой, либо удалить строки из таблицы после ее импорта. В любом случае, поскольку мы не можем видеть данные и не знаем, как определить строки для удаления, мы больше ничего не можем вам сказать.


Hemil Gandhi

Не могли бы вы помочь мне с лучшим решением, если вы предоставите свою электронную почту, я поделюсь файлом для лучшего понимания.

Richard Deeming

Нет, извините, у меня уже есть работа на полный рабочий день. У меня нет времени, чтобы обеспечить частные уроки.