|
|
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Простите меня дорогие форумчане!!! Тема очень сильно избитая но я не смог решить свою проблему. Поэтому прошу помощи у Вас. Моя проблема заключается в том что я нашел компонент NativeExcel в RAD Studio XE8. Меня все устраивало. Отличная библиотека. Но оказалось что при выгрузке моего запроса в xlsx символы Unicode например стрелочки кубы и т.д. экспортировались некорректно и файл становится битым. На просторах интернета нашел что у данного компонента есть проблема с выгрузкой unicode кодировки. Прошу Вас помочь в решении данной проблемы. Возможно ссылкой на компонент для выгрузки запроса. Построчное добавление или вставкой массива в шаблон очень не хочется. Построчное исполнение подвисает программу а при выгрузке 100 тыс строк это критично. Также при моей реализации кода с OLE нельзя было пользоваться EXCEL параллельно. Очень прошу не говорить о платных библиотеках. И если можно то с ссылкой на то чтобы загрузить и применить в собственных проектах не коммерческие использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 18:56 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Если Вы не в состоянии ни проводить выгрузку в фоновом потоке, ни стартовать для неё отдельный COM-сервер, то и формирование XML (которым, собственно, является xlsx) Вам не по плечу. Выгружайте в .CSV, Ёксель его понимает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 19:00 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
автор100 тыс строк Большие объемы через OLE лучше не грузить, очень медленно. Если нет стороннего компонента, то можно формировать CSV-файл (TStringList.DelimetedText в помощь) и уже его открывать/подключать в экселе. авторподвисает программу а при выгрузке 100 тыс строк это критично Если нельзя/сложно делать выгрузку в потоке, то есть простое решение -- вызов Application.ProcessMessages между записью в цикле (программа обработает всю очередь виндовых сообщений словно ничего и не зависло, заодно можно где-нибудь прогресс-бар обновить, чтобы показать процент выполнения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 19:47 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
JaDiавтор100 тыс строкБольшие объемы через OLE лучше не грузить, очень медленно. Фигня. Вгружается мгновенно, если вгружать весь массив данных как массив 1-м запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 20:16 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Csv удобен для выгрузки одного ответа когда ты говоришь 3-10 отчётов то расеологаешь их на разных листах excel и ты красавчик. Нет ли бесплатного компанента? Если нет то из своего опыта подскажите какой путь более прост в изучении и достаточно эффективен для решения моей задачи. OLE ещё не нравится ибо после ввода кода везде подчеркивание и красные как я понимаю компилятор ругается. Но исполняет. Понимаю что это для профессионала не страшно но для отладки мне бредокодеру удобнее видеть ошибки в отладчике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 22:06 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Application.ProcessMessages я использую в приложении. В принципе потоки начал разбирать для того чтобы приложение не зависело в момент исполнения множественных действий с данными получаемых из БД но освоить excel я надеялся проще поэтому искал компонент. Все мои предыдущие приложения этим мне и не нравились выгрузка это код больше чем рабочий код на обработку информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 22:13 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001Csv удобен для выгрузки одного ответа когда ты говоришь 3-10 отчётов то расеологаешь их на разных листах excel и ты красавчик. Нет ли бесплатного компанента? ... Для чего? Для выгрузки в CSV? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 22:21 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001, есть прекрасная библиотека XLSReadWriteII. Да, она платная, зато полностью решает твою проблему. Плюс если будешь генерировать xlsx в отдельных потоках, а не в основном потоке приложения, то вообще все будет быстро делаться и ничего тормозить не будет. Но если ты принципиальный противних платных компонент, то твой выбор - csv. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 22:40 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
rgreatФигня. Вгружается мгновенно, если вгружать весь массив данных как массив 1-м запросом. Неа, не поможет. Предлагаю записать в эксель через OLE 100к записей по 100 колонок и замерить время. Будет много сюрпризов. Эксель очень тормозной по сравнению с другими методами записи/создания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 23:11 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Подключитесь через ODBC используя FireDAC Либо через Microsoft.ACE.OLEDB.12.0 и ADO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 23:18 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Нет я хотел сказать что при выгрузке в csv нельзя сделать много листовой документ и разместить на каждом листе свой ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 23:43 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001ёёёёё, Нет я хотел сказать что при выгрузке в csv нельзя сделать много листовой документ и разместить на каждом листе свой ответ Можно даже форматирование задавать, как душе угодно и рисовать, Главное, csv грамотно соорудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2019, 23:54 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Gatorvector0001ёёёёё, Нет я хотел сказать что при выгрузке в csv нельзя сделать много листовой документ и разместить на каждом листе свой ответ Можно даже форматирование задавать, как душе угодно и рисовать, Главное, csv грамотно соорудить. Пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 00:06 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
ёёёёё, abcdcolorlstartlend120E7-6trueaacceec12a187220.1210falsebbddffc187a12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 00:29 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Gatorёёёёё, abcdcolorlstartlend120E7-6trueaacceec12a187220.1210falsebbddffc187a12 Где тут "многолистовой документ и отдельный отчет на каждом листе"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 01:07 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Если есть исходники, можно попробовать исправить. Кстати, NativeExcel тоже платный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 10:35 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
ёёёёёGatorёёёёё, abcdcolorlstartlend120E7-6trueaacceec12a187220.1210falsebbddffc187a12 Где тут "многолистовой документ и отдельный отчет на каждом листе"? Кто мешает, например, хранить в базе минимальное эксельное файло с предварительной разметкой, макро и другими приблудами? Кто мешает заранее наваять для него UNION c разрывом страницы? Типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 12:46 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Василий 2, NativeExcel получен в наследство откуда его взяли не знаю но уверен что не покупали. Что можно исправить? Проблему выгрузки? Боюсь что не смогу это сделать в виду отсутствия опыта. Не могу поверить что на просторах интернета нет Подобных компонентов меньшего функционала но того же назначения скорее это все от того что язык постепенно угасает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 12:49 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001скорее это все от того что язык постепенно угасает. Да. Пока на него летят чайники, ничего хорошего ждать не приходится. Выкинь из этой схемы Дельфи, делай выгрузку непосредственно из экселя, через MS Query. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 12:56 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001Василий 2, NativeExcel получен в наследство откуда его взяли не знаю но уверен что не покупали. Что можно исправить? Проблему выгрузки? Боюсь что не смогу это сделать в виду отсутствия опыта. Не могу поверить что на просторах интернета нет Подобных компонентов меньшего функционала но того же назначения скорее это все от того что язык постепенно угасает. Что мешает эти проблемные данные заэкранировать/заменить прежде, чем выгружать? Например, юникодные символы заменить на их ascii аналоги при наличии (а если нет, то выгружать вопросы или заменять на другие обозначения). А то и просто найти более свежую версию компонентов, где эти проблемы наверняка исправлены. P.S. Надеюсь, что используется выгрузка в xlsx-формат , а не в нативный xls, у которого куча глюков и подобных косяков как раз (помнится, когда-то у DevExpress выгрузка в xls аналогично ломалась и портила файл при определенных данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:21 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Еще был пару лет назад случай с XLSX-файлами -- туда из сторонней программы попадали левые названия полей (совпадающие с системными) и эксель не хотел открываться. Приходилось xlsx-архив распаковывать, править проблемные xml-данные и пересобирать. Возможно, тут тоже такой лайфхак поможет, если других вариантов не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:26 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovvector0001скорее это все от того что язык постепенно угасает. Да. Пока на него летят чайники, ничего хорошего ждать не приходится. Выкинь из этой схемы Дельфи, делай выгрузку непосредственно из экселя, через MS Query. +Много Нахрен дельфи с квери и екселями? Пусть идёт ящики сколачивать для картотек позапрошлого века! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:32 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Чем доступ через ODBC не подходит? Если просто выгрузить данные без разукрашивания ячеек? К тому же и сам Excel не нужен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:34 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
Полез к компонент NativeExcel нашел процедуру отвечающую за выгрузку. На скине видно как он видит текст могу выслать всю процедуру если это поможет делу. Я так понимаю необходимо исправить момент выгрузки преобразования и перекомпилировать данный компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:45 |
|
||
|
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
|
|||
|---|---|---|---|
|
#18+
vector0001, Код: pascal 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. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 13:47 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=62&tid=2039040]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 342ms |

| 0 / 0 |
