From FlexGrid to Excell

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

From FlexGrid to Excell

Сообщение bayasaa » 06.06.2006 (Вт) 14:33

Как передать данные из FlexGrid в Excell

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 06.06.2006 (Вт) 14:53

Руками скопировать каждую ячейку...

И Excel пишется с одной буквой l.
Изображение

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 06.06.2006 (Вт) 15:17

Ну может у Flex'a есть метод SaveGrid (у VideoSoftового точно, правда он в csv кидает)

А так лучше руками...
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.06.2006 (Вт) 15:32

CopyFromRecordset - через поиск найдешь

YaS
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 13.02.2006 (Пн) 6:19

Сообщение YaS » 06.06.2006 (Вт) 17:01

я реализовал так:

экспортируется таблица, заголовки столбцов выделены жирным, а ячейки подсвечены

библу добавь microsoft exel ?? object library


Код: Выделить всё
Function fnExpExl()

Dim bstFileName As String

Dim WBObj As New Excel.Workbook
Dim i As Integer, j As Integer
Dim s As String
bstFileName = VB.App.Path & "\data_" & _
    VBA.Format$(Date, "dd_mm_yy") & _
    ".xls"
    Set WBObj = XLObj.Workbooks.Add
    With WBObj.ActiveSheet
' Вывод заголовков
    For i = 0 To MSFlexGrid1.Cols - 1
        Cells(1, i + 1).Font.Bold = True                      ' Жирным
        Cells(1, i + 1).Interior.ColorIndex = 17          ' Цвет ячейки
        Cells(1, i + 1).HorizontalAlignment = xlCenter ' По центру
        Cells(1, i + 1).ColumnWidth = 17.71               ' Ширина
        Cells(1, i + 1).Value = CStr(MSFlexGrid1.TextMatrix(0, i)) ' Здесь значения в строку преобразовываются
    Next
' Вывод остального
    For i = 0 To MSFlexGrid1.Cols - 1
            For j = 0 To MSFlexGrid1.Rows - 1
                Cells(1, i + 1).ColumnWidth = 12.14 ' -  Выставляется ширина столбца
                Cells(j + 1, i + 1).Value = CDbl(MSFlexGrid1.TextMatrix(j, i)) ' У меня числа были с фиг знает сколькими нулями и Эксель выдавал всяк фигню, поэтому в double
            Next
    Next
    End With
    XLObj.DisplayAlerts = False
    WBObj.SaveAs bstFileName ' Сохранение файла
    XLObj.Quit


MsgBox "Файл сохранен в " & bstFileName
End Function


собирал по форуму кто что писал
каждый по своему делает :)

а вообще... поиск рулит!

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 06.06.2006 (Вт) 23:40

YaS :wink: А если в обычных ячейках строки (или даты, например), а не только в заголовках. И автосайзинг по колонкам :о)) Я не придираюсь, просто так хороший функций получицца!

Правда у меня такая уже есть :о) гыгыгы. минифлуд.



Так что лучше через CreateObject, и с обработкой ошибок!
Пора уже всем хорошим людям собраться и убить всех плохих людей.

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 07.06.2006 (Ср) 7:29

Всем спасибо

YaS
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 13.02.2006 (Пн) 6:19

Сообщение YaS » 07.06.2006 (Ср) 15:20

GB826 писал(а): А если в обычных ячейках строки (или даты, например), а не только в заголовках.


разница-то какая что экспортировать. можно, конечно, принудительно установить тот или иной формат в ячейке экселя

Так что лучше через CreateObject, и с обработкой ошибок!

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

а к придираниям отношусь ровно: не нравится - не смотри :wink:

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 07.06.2006 (Ср) 15:39

Код: Выделить всё
.Cells(j + 1, i + 1).Value = CDbl(MSFlexGrid1.TextMatrix(j, i))


разница-то какая что экспортировать. можно, конечно, принудительно установить тот или иной формат в ячейке экселя


CDbl не пугает?
Пора уже всем хорошим людям собраться и убить всех плохих людей.

YaS
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 13.02.2006 (Пн) 6:19

Сообщение YaS » 08.06.2006 (Чт) 2:50

GB826 писал(а):CDbl не пугает?


Я ж там в коде в комментарии подписал. Что иначе в екселе вместо, например, числа 1,64646474844 было типа такого 232 232 454 565 - фигня, не так ли? Может можно и в single - не пробовал.


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron