|
|
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста , как две(3,4,...) таблицы выгрузить в одну книгу ЕХСЕL , чтобы каждый DBF попал на отдельный Sheet . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 12:56 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
ручками пошагово или в разные книги и объеденить через буфер обмена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 13:04 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Anatol_KuПодскажите пожалуйста , как две(3,4,...) таблицы выгрузить в одну книгу ЕХСЕL , чтобы каждый DBF попал на отдельный Sheet . Если работа одноразовая, то EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage] А если програмно, то хорошо описано в книге Менахем Базиян "Использование Visual FoxPro 6", стр.668, Создание Excel-отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 13:57 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Попробуй так! *!* set step on **************** SET OLEOBJECT ON public oleZvit dovtel = SYS(5)+SYS(2003)+[\TelD_XLS\f_tdn.xls] oleZvit = GETOBJECT(dovtel,"EXCEL.Sheet") oleZvit.application.Visible = .T. oleZvit = GETOBJECT(,"EXCEL.Application") *!* oleZvit.application.WorkBooks.Open([d:\TelD_XLS\f_td.xls]) oleZvit.application.WorkBooks.Open(dovtel) *!* oleZvit.application.Range([A1]).Select oleZvit.application.ActiveWindow.Zoom = 75 oleZvit.application.ActiveWindow.Selection.Font.Size = 14 && !!!! oleZvit.application.ActiveWindow.DisplayZeros = .F. oleZvit.application.Visible = .T. oleZvit.application.Sheets("List1").Select oleZvit.application.Cells( 2, 3).Value = [ñòàíîì íà ]+ALLTRIM(DTOC(DATE())) oleZvit.application.Range([A5]).Select oleZvit.application.Range([A5:E5]).Select oleZvit.application.Range([A5]).Select Use mfutel!vtel_mfu lTel_mfu = RECCOUNT() *!* lTel_mfu = 70 nRow = 5 nStor= 1 nnS = 0 True = .T. xlLeft = 2 xlCenter = 3 xlTop = 1 RELEASE aDOVTEL SELECT DISTINCT Tel_mfu.ind_p, Tel_mfu.room, Tel_mfu.name_p,; Tel_mfu.posada, Tel_mfu.pib1, Tel_mfu.pib2, Tel_mfu.pib3, Tel_mfu.tel_10,; Tel_mfu.tel_vn, Tel_mfu.tel_zn, Tel_mfu.tel_ho, Tel_mfu.korp, Tel_mfu.unicod; FROM mfutel!tel_mfu; WHERE Tel_mfu.out = [1]; ORDER BY Tel_mfu.ind_p, Tel_mfu.poryad; INTO ARRAY aDOVTEL For nInd = 1 TO lTel_mfu IF nStor == 1 nnnS = 17 ELSE nnnS = 17 ENDIF nnS = nnS + 1 IF nnS == nnnS oleZvit.application.Cells(nRow, 1).Select *!* oleZvit.ActiveWindow.SelectedSheets.Selection.Rows.AutoFit oleZvit.ActiveWindow.SelectedSheets.HPageBreaks.Add(oleZvit.Cells(nRow,1)) nnS = 0 nStor = nStor + 1 ENDIF *!* Selection.Rows.AutoFit *!* oleZvit.application.Cells(nRow, 1).Value = alltrim(aDOVTEL(nInd, 1)) oleZvit.application.Cells(nRow, 1).Select oleZvit.application.Selection.RowHeight = 36 oleZvit.application.Selection.WrapText = True oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Cells(nRow, 2).Select oleZvit.application.Selection.RowHeight = 36 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 3).Select oleZvit.application.Selection.RowHeight = 36 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 4).Select oleZvit.application.Selection.RowHeight = 36 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 5).Select oleZvit.application.Selection.RowHeight = 36 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 1).Value = alltrim(aDOVTEL(nInd, 2)) *!* oleZvit.application.Cells(nRow, 3).Value = alltrim(aDOVTEL(nInd, 3)) oleZvit.application.Cells(nRow, 2).Value = alltrim(aDOVTEL(nInd, 4)) oleZvit.application.Cells(nRow, 3).Value = alltrim(aDOVTEL(nInd, 5))+" "+alltrim(aDOVTEL(nInd, 6))+" "+alltrim(aDOVTEL(nInd, 7)) && oleZvit.application.Cells(nRow, 6).Value = alltrim(aDOVTEL(nInd, 6)) && oleZvit.application.Cells(nRow, 5).Value = alltrim(aDOVTEL(nInd, 7)) oleZvit.application.Cells(nRow, 4).Value = alltrim(aDOVTEL(nInd, 8))+" "+alltrim(aDOVTEL(nInd, 9)) *!* oleZvit.application.Cells(nRow, 6).Value = alltrim(aDOVTEL(nInd, 8)) *!* oleZvit.application.Cells(nRow, 7).Value = alltrim(aDOVTEL(nInd, 9)) oleZvit.application.Cells(nRow, 5).Value = alltrim(aDOVTEL(nInd,10)) *!* oleZvit.application.Cells(nRow, 9).Value = alltrim(aDOVTEL(nInd,11)) *!* oleZvit.application.Cells(nRow,10).Value = alltrim(aDOVTEL(nInd,12)) oleZvit.application.Cells(nRow, 6).Value = alltrim(STR(nStor)) oleZvit.application.Cells(nRow+1, 1).Select oleZvit.application.Selection.RowHeight = 8 nRow = nRow + 2 update Tel_mfu SET paged = nStor WHERE Tel_mfu.unicod = alltrim(aDOVTEL(nInd,13)) ENDFOR *************List2 Use mfutel!vpib lpib = RECCOUNT() *!* lpib = 70 oleZvit.application.ActiveWindow.Zoom = 75 oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.DisplayZeros = .F. oleZvit.application.Visible = .T. oleZvit.application.Sheets("List2").Select oleZvit.application.Visible = .T. oleZvit.application.Range([A3]).Select nRow = 5 RELEASE aPIB SELECT DISTINCT ALLTRIM(Tel_mfu.pib1) +" "+ ALLTRIM(Tel_mfu.pib2) +" "+ ALLTRIM(Tel_mfu.pib3) AS pib,; Tel_mfu.tel_10, Tel_mfu.tel_zn, Tel_mfu.tel_vn, Tel_mfu.room, Tel_mfu.korp,; Tel_mfu.paged; FROM mfutel!tel_mfu; WHERE Tel_mfu.out = "1"; AND Tel_mfu.pib1 <> " "; ORDER BY 1; INTO ARRAY aPIB For nInd = 1 TO lpib oleZvit.application.Cells(nRow, 1).Select oleZvit.application.Selection.HorizontalAlignment = xlLeft oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.ActiveWindow.Selection.RowHeight = 18 oleZvit.application.ActiveWindow.Selection.Rows.AutoFit oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 2).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 3).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 4).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 5).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 6).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 7).Select oleZvit.application.Selection.HorizontalAlignment = xlCenter oleZvit.application.Selection.VerticalAlignment = xlTop oleZvit.application.ActiveWindow.Selection.Font.Name = "Times New Roman" oleZvit.application.ActiveWindow.Selection.Font.Size = 14 oleZvit.application.Selection.WrapText = True oleZvit.application.Cells(nRow, 1).Value = alltrim(aPIB(nInd, 1)) oleZvit.application.Cells(nRow, 2).Value = alltrim(aPIB(nInd, 2)) oleZvit.application.Cells(nRow, 3).Value = alltrim(aPIB(nInd, 3)) oleZvit.application.Cells(nRow, 4).Value = alltrim(aPIB(nInd, 4)) oleZvit.application.Cells(nRow, 5).Value = alltrim(aPIB(nInd, 5)) oleZvit.application.Cells(nRow, 6).Value = alltrim(aPIB(nInd, 6)) oleZvit.application.Cells(nRow, 7).Value = alltrim(STR(aPIB(nInd, 7))) oleZvit.application.Cells(nRow+1, 1).Select oleZvit.application.Selection.RowHeight = 3 nRow = nRow + 2 ENDFOR *************End List2 oleZvit.application.ActiveWorkbook.SaveAs([D:\TelD_XLS\dovtk.xls]) oleZvit.application.quit release oleZvit oleZvit=null RELEASE aDOVTEL USE WAIT " Ðåçóëüòàòè â äèðåêòî𳿠D:\TelD_XLS\ - ôàéë dovtk.xls " WINDOW AT 30,35 TIMEOUT 3 ********************************************************* RETURN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 10:15 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Очень благодарен. Попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 17:55 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Hi VictoryS! Интересно, а сам то ты понимаешь ЧТО и КАК делает этот код :) P.S. Ничего личного, но создаётся впечатление, что писалось такое после изрядного количества принятого пива... Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 01:15 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
а что там не так Игорь? (подробно конечно не читал) я свой самый первый экспорт так и написал было... давно правда.. потом мне стало лень шапки малевать програмно и я заюзал готовый шаблон а под шапку вставлял... потом заметил как быстро это идет на Р-166, если в отчете 1000 наименований :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 11:57 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Человек задает конкретный вопрос, а его начинают посылать куда попало, или давать глупые советы. У всех из нас бывают затруднения и бысто выйти из них - это обратиться к друзьям. Но если руки торчат не оттуда - лучше их чесать не о клавиатуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 09:57 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
VictorySЧеловек задает конкретный вопрос, а его начинают посылать куда попало, или давать глупые советы. У всех из нас бывают затруднения и бысто выйти из них - это обратиться к друзьям. Но если руки торчат не оттуда - лучше их чесать не о клавиатуру. Понимаешь, то что ты написал, возможно, работает. Но как ответ на заданный вопрос имеет ряд недостатков: -) Ты не использовал форматирование кода (кнопочка "SRC"). В результате, код получился "слепой". Нужно затратить немало времени и сил, чтобы привести его к "читабельному" виду -) В твоем коде нет комментариев. Тебе-то все понятно, но как с этим будет разбираться человек, задавший вопрос? -) Даже при беглом взгляде на твой код видно, что он ужасно избыточный. Ты сделал все типичные ошибки по работе с Excel, которые только можно было сделать. Ошибки не в смысле, что это не будет работать, а ошибки в смысле, что половина команд вообще не нужна, а другую можно сильно сократить. Anatol_Ku Если возникает вопрос о неизвестной команде или функции в Excel. Например, как создать новый лист в Excel. То обычно включают макрорекодер в самом Excel (Сервис - Макрос - Начать запись). Далее выполняются все необходимые действия. Останавливается запись макроса и открывается полученный код (Сервис - Макрос - Макросы - Изменить) Если выполнить создание нового листа, то в макросе будет примерно такой код: Код: plaintext 1. 2. 3. 4. 5. Как это добро адаптировать в код FoxPro? Да примерно "как есть" Код: 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. Принципиальное отличие от макроса Excel только в том, что не нужено постоянно переводить фокус на модифицируемый объект (выполнение метода Select). Это старшно тормозит процесс экспорта, но никак не влияет на функциональность. Этот перевод фокуса понадбился только по окночании экспорта, чтобы снять выделение. Ну, а как сформировать строку буфера обмена через сканирование таблиц (SCAN...ENDSCAN), думаю и сам сообразишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 13:19 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
Hi FM32YO aka KID! Ну ты построчно проанализируй код и поймёшь что не так. P.S. Дело НЕ в идеологии создания отчёта, а собственно в написании кода. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 14:10 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
ВладимируМ Это другой разговор. Ты джентельмент. Спасибо. Желаю всем продолжать в том-же духе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 15:38 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
ВладимируМ Большое - СПАСИБО. Вопросов больше нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2005, 16:51 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
ВладимируМ почемуто на VFP8 & win 98 & Excel 2002(XP) sp3 на строке : Код: plaintext Хотя в winXP & VFP9 & EXCEL 2003 все работает безупречно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:52 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
простите забыл файл прикрепить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:53 |
|
||
|
VFP - 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 12:27 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
для Maltsev Max Конечно можно сделать и так как вы предлагаете. Потом вставить строки, сформировать шапку, нарисовать сетку, внести промежуточные итоги формулами EXcel. Сохранить в формате Excel 2000,XP,2003 . Просто дело вкуса. P.S. при количестве сторок в несколько тысяч так наверно даже быстрее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:32 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
S866ВладимируМ почемуто на VFP8 & win 98 & Excel 2002(XP) sp3 на строке : Код: plaintext Хотя в winXP & VFP9 & EXCEL 2003 все работает безупречно. Попробуй разбить команды на шаги и в отладчике посмотри, какая ссылка (на какой команде) теряется Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 17:11 |
|
||
|
VFP - EXCEL
|
|||
|---|---|---|---|
|
#18+
для Влидимира М так при первом вызове строки Код: plaintext я всетаки склоняюсь к мысли что у меня просто винда 98-я закривела - я ее уже несколько лет не переставлял токо чистил да подлечивал. Софта разного на ней перевернулось очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32926925&tid=1592839]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 521ms |

| 0 / 0 |
