Как вывести таблицу базы данных в таблицу Excel? - PullRequest
1 голос
/ 28 июля 2011

Я получаю данные из своей базы данных и хочу, чтобы эти данные были в виде таблицы в файле Excel. Итак, я написал следующее:

    Dim sheetToPopulate As Excel.Worksheet = getSheet()
    Dim reader As OleDbDataReader
    Dim query As String = "SELECT * FROM dataTable"
    Dim cmd As New OleDbCommand(query, oleConn)
    Dim reader As OleDbDataReader
    oleConn.Open()
    reader = cmd.ExecuteReader()
    Do While reader.Read()
        // How use the reader to populate the sheet at once.
        // I have the sheet object as sheetToPopulate.
        // cell.Vaule = reader.GetString(0)  ' It would be very in-efficient and complex.
        // How can I dump the table to my excel sheet ?
    Loop
    reader.Close()
    oleConn.Close()

Должен быть прямой очевидный способ сделать это?

Сброс таблицы базы данных в таблицу Excel?

[Должен ли я? ]

Should I use dataset of something.. ? If yes, how to proceed for that ?

Пожалуйста, помогите .. Я новичок в этом !!

Ответы [ 4 ]

1 голос
/ 02 августа 2011

Вот как я решил это:

Private Function getData(ByVal query As String, ByVal conStr As String) As Object
    Dim adapter As New Data.OleDb.OleDbDataAdapter(query, conStr)
    Dim dataSet As New Data.DataSet
    adapter.Fill(dataSet)
    Dim dataTable As Data.DataTable = dataSet.Tables(0)
    Dim data(dataTable.Rows.Count, dataTable.Columns.Count - 1) As Object
    For col = 0 To dataTable.Columns.Count - 1
        For row = 0 To dataTable.Rows.Count - 1
            data(row, col) = dataTable.Rows(row).ItemArray(col)
        Next
    Next
    Return data
End Function

Затем, наконец, выполните следующие действия для диапазона, в котором вы хотите получить эти данные

range.Value = getDate(query,conStr)

Это решило всю проблему!

0 голосов
/ 28 июля 2011

Самое простое решение, если вы пишете CSV-файл.В csv столбцы разделяются запятой (;), и Excel может прочитать этот файл.

Лучший способ - OLE-автоматизация, но для этого вам нужно установить Excel на компьютер, на котором работает ваша программа.Вот пример: OLE Automation

0 голосов
/ 28 июля 2011

Лучший способ - использовать XmlSerialization таблицы данных, а затем выполнить Excel-загрузку сериализованного Xml ...

. Существует замечательная утилита с открытым исходным кодом (которую можно добавить в свой проект и внести изменения ва) называется ExcelLibrary ... пожалуйста, обратитесь к этой статье ... Создание файла Excel (.XLS и .XLSX) из C #

Это один из наиболее эффективных способов массовойExcel Загрузка.

0 голосов
/ 28 июля 2011

Посмотрите на что-то вроде EPlus , которое кажется популярной библиотекой.

... или FileHelpers , где есть хороший быстрый старт , показывающий, как создать файл .csv

Вы можете просто использовать функцию экспорта в Sql Server Management studio, если это одноразовое задание?

...