|
|
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста!!! у меня есть datagrid, как все его содержимое оправить в Excel. надо это сделать через массив. подскажите, как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 06:07:58 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Для VB мы делаем так: Private Sub cmdExport_Click() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) Dim i As Integer Dim j As Integer Dim locArr() As Variant sbStatusBar.Panels(1).Text = "Заполняем лист Excel" Screen.MousePointer = vbHourglass tm_beg = Timer 'вариант по ячейкам, медленный 'For i = 0 To grd.Rows - 1 ' For j = 0 To grd.Cols - 1 ' xlSheet.Cells(i + 1, j + 1) = grd.TextMatrix(i, j) ' Next j 'Next i ReDim locArr(0 To grd.Rows - 1, 0 To grd.Cols - 1) 'из грида в таблицу For i = 0 To grd.Rows - 1 For j = 0 To grd.Cols - 1 locArr(i, j) = grd.TextMatrix(i, j) Next j Next i 'из таблицы в Excel xlSheet.Activate xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(UBound(locArr, 1) + 1, UBound(locArr, 2) + 1)).Value = locArr Erase locArr tm_end = Timer sbStatusBar.Panels(1).Text = "Готово " + Format(tm_end - tm_beg, "###.0") + " сек." Screen.MousePointer = vbDefault xlSheet.Range("A1").Select ' Делает Excel видимым через объект Application. xlSheet.Application.Visible = True ' Освобождает объектную переменную. Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 07:48:25 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
этот пример работает с msflexgrid. а мне надо с datagrid. у него нет свойств: cols, rows, textmatrix ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 10:01:07 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
этот пример работает с msflexgrid. а мне надо с datagrid. у него нет свойств: cols, rows, textmatrix ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 11:04:16 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
если не трудно, покажите пример кода. не очень понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 05:19:24 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
если не трудно, покажите пример кода. не очень понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 05:33:57 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
если не трудно, покажите пример кода. не очень понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 05:39:26 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 08:26:10 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
+ Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 08:29:33 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 08:42:47 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
спасибо огромное, код просто супер. Очень мне помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 09:32:52 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
спасибо огромное, код просто супер. Очень мне помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 09:35:47 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Ну если это получилось, то пригодится и это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 11:07:07 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
1.А зачем через массив? Можно ведь использовать CopyFromRecordset, будет гораздо быстрее. 2.Если уж через массив то его из рекордсета можно получить использовав rs.GetRows 3.Настенька фотку давай! :) Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:56:57 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Magnus231.А зачем через массив? Можно ведь использовать CopyFromRecordset, будет гораздо быстрее. 2.Если уж через массив то его из рекордсета можно получить использовав rs.GetRowsИногда бывает нужно вывести только часть полей rs Мы ведь не хотим пользователю показывать PK и FK. Не так ли? А если надо показать только те поля, которые пользователь сам выбрал шириной колонок грида. Или такая задача пока не встречалась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 16:34:20 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Worobjoff Magnus231.А зачем через массив? Можно ведь использовать CopyFromRecordset, будет гораздо быстрее. 2.Если уж через массив то его из рекордсета можно получить использовав rs.GetRowsИногда бывает нужно вывести только часть полей rs Мы ведь не хотим пользователю показывать PK и FK. Не так ли? А если надо показать только те поля, которые пользователь сам выбрал шириной колонок грида. Или такая задача пока не встречалась? Кроме первого из предложенных вариантов, во всех используется прямой перенос из рекордсета, а на счет выбора в гриде, так извини - это спекуляция, бывает многое, но в вопросе ничего подобного не было. Как уже писалось в правилах - каков вопрос таков и ответ. Если нужно переносить только выбранное, гораздо продуктивнее было бы автору упомянуть об этом, чем уповать на то что мы сами догадаемся. Телепаты ведь все еще не вернулись из санатория :). На счет GetRows возражений нет? При переносе матрицу ведь и ограничить можно как вздумается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 16:53:28 |
|
||
|
Передача в Excel
|
|||
|---|---|---|---|
|
#18+
Magnus23Кроме первого из предложенных вариантов, во всех используется прямой перенос из рекордсета, а на счет выбора в гриде, так извини - это спекуляция, бывает многое, но в вопросе ничего подобного не было. Как уже писалось в правилах - каков вопрос таков и ответ. Если нужно переносить только выбранное, гораздо продуктивнее было бы автору упомянуть об этом, чем уповать на то что мы сами догадаемся. Телепаты ведь все еще не вернулись из санатория :). На счет GetRows возражений нет? При переносе матрицу ведь и ограничить можно как вздумается.Согласен со всем, что сказано. Просто если печатешь пример, то это - из реального приложения (и иногда вымученного большой ценой). Даже и не вспомнишь почему отверг то или другое (эти же CopyFromRecordset, rs.GetRows) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:22:48 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32814757&tid=2168496]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 339ms |

| 0 / 0 |
