|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Сам занимался подобной задачей при экспорте отчетов, а сегодня наткнулся на изящное решение: /////////////////////////////////////////////////////////////////////////////////////////////////////// // Converting DataWindow to Excel file /////////////////////////////////////////////////////////////////////////////////////////////////////// // Export DataWindow to Excel including computed-columns, headers, footers, groups, text labels, etc... /////////////////////////////////////////////////////////////////////////////////////////////////////// // ... Init docname // ... GetFileOpenName or any other method // IF dw.SaveAs( docname, HTMLTable!, TRUE ) = -1 THEN MessageBox("Warning", "Unable to export data. Error writing to file!", Exclamation!) RETURN ; END IF ; // // Convert HTML file to Excel native format OLEObject Excel ; // Excel = CREATE OLEObject ; // IF Excel.ConnectToObject( docname ) = 0 THEN Excel.Application.DisplayAlerts = FALSE ; Excel.Application.Workbooks( 1 ).Parent.Windows( excel.Application.workbooks( 1 ).Name ).Visible = TRUE ; Excel.Application.Workbooks( 1 ).SaveAs(docname, 39 ) ; Excel.Application.Workbooks( 1 ).Close() ; END IF ; // DESTROY excel // // ...Done Еще много интересного можно взять http://groups.yahoo.com/group/PowerObject/ Только там нужно зарегестрироваться ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2003, 19:14 |
|
Экспорт Datawindow в 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2003, 19:42 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
...ну и f_message_box на стандартный заменить... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2003, 19:44 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
А я просто сохраняю в HTML - можно открывать не только из Excel'я, но и из других приложений,кроме того не требуется установленный Excel на компьютере с нашим запущенным приложением. Так что я сохранение именно в Excel делал бы, как минимум, опциональным. Да, и еще. При таком сохранении вид отчета 1 к одному передать очень часто не удается :( ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2003, 10:01 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Да, точной передачи дизайна отчета так просто не получается. Я для этого делал экспорт Tabular Datawindow (все отчеты у меня такие) по одной ячейке, сам устанавливал бордеры, ширину, длину, вычитывал заголовки и т.д., на больших отчетах все жутко медленно происходит :( А есть вообще такая приблуда, что datawindow 1 к 1-му перегоняет в офисные приложения? (excel, word) Вот например ребята которые делают Preport для Delphi как-то по хитрому экспортят не используя OLE... Может кто-то занимался подобным? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2003, 11:05 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Вот инфа с их сайта http://vtktools.ru/: vtkExport - This library is intended for export into Excel & HTML formats. Generating of the XLS file runs without using DDE, OLE. That’s why a high speed of export is reached. The export method is simple – you generate object TvteXLSWorkBook, which has properties & methods similar to properties & methods of OLE from Excel server, & call it’s method SaveAsXLS or SaveAsHTML. You can read about vtkExport possibilities more particularly here. А как это они делают непойму... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2003, 11:24 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Я тоже делал что-то типа такого, но перегонял в HTML и использовал шаблоны которые строил автоматически по заданному DW. Получается гораздо быстрее, чем для каждой ячейки expression'ы вычислять, и выглядит правдоподобно, правда expression'ы на x,y,height,width жизнь немного портят. А экспорт 1 в 1 произвольного DataWindow, как я думаю, не получится, т.к. в DataWindow можно объекты один на другой накладывать, и я слабо представляю как тоже самое сделать, допустим, в Excel'е или HTML'е. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2003, 11:25 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Ещё можно форматирование ячеек и всё остальное через OLE, а данные через Clipboard передавать. Очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 11:23 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
>Ещё можно форматирование ячеек и всё остальное через OLE, а данные >через Clipboard передавать. Очень быстро. В этом способе есть один недостаток (может его можно как-то обойти, но я не знаю) - данные в Clipboard может испортить, к примеру, сам пользователь (если сам в процессе передачи данных что-то делает). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 11:46 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Через HTML или OLE не всегда возможно экспортировать - при больших объемах начинаются тормоза и глюки. Здесь есть компоненты для PB, где этих проблем нет: - PB2XLS - создание EXCEL файлов напрямую(без OLE, HTML и т.д.) - DW2XLS - экспорт DW с использованием PB2XLS платное ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 12:50 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
>Через HTML или OLE не всегда возможно экспортировать - при больших >объемах начинаются тормоза и глюки. Ну не знаю какие тормоза и глюки, но 35 страниц этот компонент выкинул в xls за 3m 10s, мой экспорт в html сработал за 4m 50s. После этого оба файла нормально открылись в Excel. К тому же в некоторых отчетах он хуже внешний вид передает (к примеру - не учитывает expression'ы на начертание шрифта), высоту Detail Band'а и т. д. Правда на таком отчете мой экспорт работал раза в 4 дольше :) Эх, знал бы я формат *.psr у меня бы экспорт просто летал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 14:34 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Локшин МаркНу не знаю какие тормоза и глюки При экспорте через OLE - Excel подвисал, приходилось перегужать комп. При импорте больших HTML в Excel - большой расход памяти, свопинг. Все это с Офис97, может в других версиях и не было такого. Локшин МаркЭх, знал бы я формат *.psr у меня бы экспорт просто летал. Хе-хе :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 15:18 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
>При импорте больших HTML в Excel - большой расход памяти, свопинг. >Все это с Офис97, может в других версиях и не было такого. Есть такое дело, но зато IE влет открывает :) > Локшин Марк > Эх, знал бы я формат *.psr у меня бы экспорт просто летал. >Хе-хе :)) Что означает ваше "хе-хе" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 15:52 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
авторЧто означает ваше "хе-хе" ? При наличии большого желания (или денег :)) можно получить эту информацию. Например. Обращаешься в Sybase, говоришь, что ты ISV и для твоего приложения требуется такая-то информация, обязуешься не разглашать и т.д. Есть и другие способы... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2004, 16:03 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Локшин Марк >Ещё можно форматирование ячеек и всё остальное через OLE, а данные >через Clipboard передавать. Очень быстро. В этом способе есть один недостаток (может его можно как-то обойти, но я не знаю) - данные в Clipboard может испортить, к примеру, сам пользователь (если сам в процессе передачи данных что-то делает). А слабо на практике "испортить" данные в Клипборде? Если в коде между двумя вызовами нет больше никаких операций. Например: Код: plaintext 1. 2.
Надо очень сильно постараться. ;) А работает действительно мухой, даже на очень больших объемах. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2004, 18:34 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
авторЕщё можно форматирование ячеек и всё остальное через OLE, а данные через Clipboard передавать. Очень быстро. В данном методе есть несколько недостатков. 1. Для больших отчетов форматирование ячеек через OLE занимает очень много времени 2. Подготовка данных для передачи через Clipboard тоже весьма непростая задача, особенно если Datawindow группированный 3. Написать универсальную процедуру, которая бы таким способом экспортировала в Excel достаточно трудоемко (если конечно не ограниваться только простыми случаями вроде тривиального Grid или Columnar) авторА я просто сохраняю в HTML - можно открывать не только из Excel'я, но и из других приложений,кроме того не требуется установленный Excel на компьютере с нашим запущенным приложением. Открыть то его можно, но работать с таким отчетом в Excel - весьма неблагодарное занятие. 1. Форматирование ячеек практически не сохраняется 2. Расположение ячеек и их размеры тоже весьма далеки от оригинала 3. А с данными вообще происходит полный кошмар: некоторые строки почему-то превращаются в даты числа - в строки, из которых потом прийдется удалить разделитель тысячных разрядов если вы захотите их просуммировать От такого способа лучше сразу отказаться так как кроме головной боли он вам ничего хорошего не принесет Единственный способ получить качественный экспорт в Excel - это использовать OLE, но и тут надо быть готовым к сюрпризам. Разные версии Excel ведут себя по разному. Если ваш скрипт экспорта работает с Excel 97 это не значит что он будет работать с Excel 2000. Что касается библиотеки DW2XLS она конечно имеет некоторые недостатки, но она достаточно успешно решает все перечисленные проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2004, 00:59 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
>Открыть то его можно, но работать с таким отчетом в Excel - весьма >неблагодарное занятие. >1. Форматирование ячеек практически не сохраняется >2. Расположение ячеек и их размеры тоже весьма далеки от оригинала ... >От такого способа лучше сразу отказаться так как кроме головной боли он >вам ничего хорошего не принесет Ну я же его не через dw_1.SaveAs(...) сохраняю. Все получается веьма культурно. Зачастую вид один к одному. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2004, 10:37 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
авторНу я же его не через dw_1.SaveAs(...) сохраняю. Все получается веьма культурно. Зачастую вид один к одному. Форматирование ячеек - это не главная проблема главная проблема в том что Excel не может правильно распознать тип данных в ячейке. и строки вида '01-02' преобразуются в даты числа отформатированные с тысячным разделителем например: 1 300.00 или 1,300.00 будут восприняты как строки "1 300.00" и "1,300.00" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2004, 16:41 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
А возможно ли выполнить экспорт datawindow практически без искажений? В частности, сохранить печатную форму счета, где искажения недопустимы? Кто нибудь решал такую задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2004, 09:52 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Необходимо выполнить разовую работу по экспорту datawindow - печатной формы счета - в файл. В какой срок и за какие деньги это можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2004, 10:08 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Ой, забыл ответить. :) to Nikulitsa авторглавная проблема в том что Excel не может правильно распознать тип данных в ячейке. и строки вида '01-02' преобразуются в даты все проблемы решаются при помощи явного указания формата, к примеру для строк вида '01-02' нужно задать в стиле ячейки формат mso-number-format:"\@" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2004, 10:43 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Во втором сообщении этой темы Филипп предложил вариант переброски в Excel через HTML. У меня есть маленькая проблема. То DW, что я экспортирую, содержит колонку с данными отображающимися как checkbox. В результате в Excel пользователь видит checkbox в этой колонке, но он смещен влево и имеет слишком большие размеры (наплывает на границы)... можно ли как нибудь это поправить? Как это выглядит можно увидеть во вложенном рисунке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2005, 17:33 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Хорошо! Поставим вопрос по иному: Кто нибудь перебрасывал dw со стобцом\ами типа checkbox в Excel? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2005, 18:35 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Дремучий wrote: > Кто нибудь перебрасывал dw со стобцом\ами типа checkbox в Excel? Перебрасывал, но не через HTML, а ручками. Для эмуляции включённого checkbox-а проканывает "ь" в шрифте Wingdings. Помогло ;)? Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2005, 18:47 |
|
Экспорт Datawindow в Excel
|
|||
---|---|---|---|
#18+
Dim2000Перебрасывал, но не через HTML, а ручками. Для эмуляции включённого checkbox-а проканывает "ь" в шрифте Wingdings. Помогло ;)? :( У меня используется наше расширение DW. Мне надо подправить общую функцию переброски. Честно говоря, я надеялся на информацию как ручками подправить переброшенные checkbox`ы. Фактически, там нужно каждому уменьшить размер и отцентрировать. А вот синтаксис этого (из PB) я никак не могу понять... :( Мысль переписань к черту всю процедуру переброски на "ручками" я пока держу в запасе :(. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2005, 11:12 |
|
|
start [/forum/topic.php?fid=15&msg=32354941&tid=1336419]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
147ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 287ms |
0 / 0 |