Excel.NET

Все вопросы «а не подскажете, где мне найти...» обсуждаются только здесь.
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Excel.NET

Сообщение MIT » 23.08.2009 (Вс) 1:58

Ищется любая информация по работе с Excel`ем и файлами .xls в .NET`е в виде статей и примеров на любом языке.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

raserg
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 24.01.2009 (Сб) 0:35
Откуда: Одесса

Re: Excel.NET

Сообщение raserg » 26.09.2009 (Сб) 11:15

Пример экспорта данных из DataSet в Exsel,
скорость заполнения приличная

Код: Выделить всё
Private Sub DataGr()
        Dim l As Integer
    Dim xlApp1 As Microsoft.Office.Interop.Excel.Application

     Dim xlBook As Microsoft.Office.Interop.Excel.Workbook

        xlApp1 = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
     
        xlBook = xlApp1.Workbooks.Add()

        xlApp1.DisplayAlerts = False
       
       xlBook.Worksheets.Add()
      
            If DataSet3.Tables.Count > 3 Then

                For n As Integer = 1 To DataSet3.Tables.Count - 3
                    xlBook.Worksheets.Add()
                Next
            End If
      
        For l = 0 To DataSet3.Tables.Count - 1

            Dim rawData(DataSet3.Tables(l).Rows.Count, DataSet3.Tables(l).Columns.Count - 1) As Object
            Dim col As Integer = 0
            Dim row As Integer = 0
           
            For col = 0 To DataSet3.Tables(l).Columns.Count - 1

                For row = 0 To DataSet3.Tables(l).Rows.Count - 1
                    rawData(row + 1, col) = DataSet3.Tables(l).Rows(row).ItemArray(col)
                Next
            Next

            Dim finalColLetter As String = String.Empty
            finalColLetter = ExcelColName(DataSet3.Tables(l).Columns.Count)

            Dim excelRange As String = String.Format("A1:{0}{1}", finalColLetter, DataSet3.Tables(l).Rows.Count + 1)

            xlBook.Worksheets(l + 1).Range(excelRange, Type.Missing).Value2 = rawData


        Next

        xlApp1.Windows.Item(1).SplitRow = 1    'Закрепляем верхнюю строку.Для примера
        xlApp1.Windows.Item(1).FreezePanes = True
        xlBook.Worksheets(2).activate()
        xlApp1.Windows.Item(1).SplitRow = 1
        xlApp1.Windows.Item(1).FreezePanes = True
        xlBook.Worksheets(3).activate()
        xlApp1.Windows.Item(1).SplitRow = 1
        xlApp1.Windows.Item(1).FreezePanes = True
        xlBook.SaveAs(Application.StartupPath & "\Результат.xls")
        xlBook.Close()
        xlApp1.Quit()

    End Sub
   
    Public Function ExcelColName(ByVal Col As Integer) As String
        If Col < 0 And Col > 256 Then
            MsgBox("Invalid Argument", MsgBoxStyle.Critical)
            Return Nothing
            Exit Function
        End If
        Dim i As Int16
        Dim r As Int16
        Dim S As String
        If Col <= 26 Then
            S = Chr(Col + 64)
        Else
            r = Col Mod 26
            i = System.Math.Floor(Col / 26)
            If r = 0 Then
                r = 26
                i = i - 1
            End If
            S = Chr(i + 64) & Chr(r + 64)
        End If
        ExcelColName = S
    End Function


Вернуться в Народный поиск

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList