FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9239
Вход
Работа из VFP с EXCEL с использованием OLE

Еще один пример работы с Excel из VFP


 
Прислал: А.Пинигин   Категория: Foxpro и другие приложения


Работа из VFP с EXCEL с использованием OLE

1 вариант


OLEOBJECT = CREATEOBJECT("EXCEL.Application")
OLEOBJECT.APPLICATION.VISIBLE = .T.

SELECT diction

EXPORT TO INFO XL5
OLEOBJECT.workbooks.OPEN("c:\aarazrab\capcods\info.XLs")
m_Kol2=reccount()+3
m_str=alltrim(str(m_kol))
m_str2=alltrim(str(m_kol2))
c1="C"+m_str
d1="D"+m_str
e1="E"+m_str
f1="F"+m_str
g1="G"+m_str
h1="H"+m_str
i1="I"+m_str
c2="C"+m_str2
OLEOBJECT.RANGE(C1).SELECT
OLEOBJECT.RANGE(C1).VALUE = "Kapkodi/Trafiks/="
OLEOBJECT.RANGE(D1).SELECT

OLEOBJECT.RANGE(D1).VALUE = m2kol && общее количество капкодов
OLEOBJECT.RANGE(E1).SELECT
OLEOBJECT.RANGE(E1).VALUE = m_traf_pagr

********************************************************************************
2 вариант


LOCAL m_kol,m_kols
#DEFINE xlleft 1
#DEFINE xlcenter 3
#DEFINE xlright 5
#DEFINE xlcenteracrossselection 7
#DEFINE xlnone 1
#DEFINE xlthin 2
#DEFINE xlmedium 3
#DEFINE xlbottom 4

*!* Делаем выборку данных из таблицы wrzakaz
DO CASE
CASE REPORT.filename = "zakaz_pr"

m_nr_zakaz = wrzakaz0.nr_zakaz
SELECT REPORT
SET DELETED ON
DO qr_zakaz_pr.QPR
SELECT qr_zakaz_pr
*!* ALTER TABLE qr_zakaz_pr ADD COLUMN spis N(5)

SELECT qr_zakaz_pr
GO TOP
m_kol=0

DO WHILE !EOF()
m_kol=m_kol+10
*!* m_kols = STR(m_kol,4,0)+"0"
REPL spis WITH m_kol

SKIP
ENDDO
APPEND BLANK
REPL spis WITH 0
REPL tovar WITH "FAX - THE COORDINATION OF THE ORDER"
REPL coment WITH m_nr_zakaz
APPEND BLANK
REPL spis WITH 1
REPL tovar WITH Thisform.m_nos+space(6)+Thisform.m_tl1 && телефон 1
APPEND BLANK
REPL spis WITH 2

REPL tovar WITH Thisform.m_tl2 && телефон 2
APPEND BLANK
REPL spis WITH 3
REPL tovar WITH Thisform.m_fax && fax

APPEND BLANK
REPL spis WITH 4
* количество записей в таблице до подписи
m_count0 = RECCOUNT() +2

APPEND BLANK
REPL spis WITH m_kol+1
APPEND BLANK
REPL spis WITH m_kol+1
REPL tovar WITH "Kind regards "+Thisform.m_fam && подпись
APPEND BLANK
REPL spis WITH m_kol+1

REPL tovar WITH DTOC(DATE())
* количество записей в таблице
m_count = RECCOUNT() +1

INDEX ON spis TAG spis
SET ORDER TO spis
EXPORT TO qr_zakaz_pr XL5

OLEOBJECT = CREATEOBJECT("EXCEL.Application")
OLEOBJECT.APPLICATION.VISIBLE = .T.

m_pathxls = m_curdir + 'qr_zakaz_pr.XLS'
OLEOBJECT.workbooks.OPEN(m_pathxls)

FOR bukva = 65 TO 70
m1 = [OLEOBJECT.RANGE(]+["]+CHR(bukva)+[6]+["]+[).SELECT]
m2 = [OLEOBJECT.COLUMNS(]+["]+CHR(bukva)+[:]+CHR(bukva)+["]+[).entirecolumn.autofit]

OLEOBJECT.RANGE("C6").VALUE = "Pal"
OLEOBJECT.RANGE("B6").VALUE = "The goods"
OLEOBJECT.RANGE("D6").VALUE = "Box"
OLEOBJECT.RANGE("E6").VALUE = "Cost of the goods for 1 box"
&m1
*!* .HorizontalAlignment = xlCenter
*!* .VerticalAlignment = xlBottom

OLEOBJECT.SELECTION.FONT.bold = .T.
OLEOBJECT.SELECTION.FONT.italic = .T.
OLEOBJECT.SELECTION.FONT.NAME = "Arial"
OLEOBJECT.SELECTION.FONT.SIZE = 10

&m2

ENDFOR

* Выделение области и удаление значений
* чистка области в районе
OLEOBJECT.RANGE("C2:E5").SELECT
OLEOBJECT.SELECTION.clearcontents
* чистка области порядковых номеров
OLEOBJECT.RANGE("A1:G1").SELECT
OLEOBJECT.SELECTION.clearcontents
m_oblast = "G1:G"+ALLTRIM(STR(m_count,3,0))
m_comand = [OLEOBJECT.RANGE("]+m_oblast+[").SELECT]
&m_comand
OLEOBJECT.SELECTION.clearcontents
* чистка области в районе подписи

m_oblast0 = "C"+ALLTRIM(STR(m_count0,3,0))+":"+[E]+ALLTRIM(STR(m_count,3,0))
m_comand0 = [OLEOBJECT.RANGE("]+m_oblast0+[").SELECT]
&m_comand0
OLEOBJECT.SELECTION.clearcontents
* чистка области кода номенклатуры
m_oblast = "A1:A"+ALLTRIM(STR(m_count,3,0))
m_comand = [OLEOBJECT.RANGE("]+m_oblast+[").SELECT]
&m_comand
OLEOBJECT.SELECTION.clearcontents
* Выравнивание по центру
OLEOBJECT.RANGE("B2").SELECT
OLEOBJECT.SELECTION.horizontalalignment = xlcenter

OLEOBJECT.SELECTION.verticalalignment = xlbottom
OLEOBJECT.SELECTION.FONT.NAME = "Arial"
OLEOBJECT.SELECTION.FONT.SIZE = 15
xljustify = -4150
OLEOBJECT.RANGE("B3:B5").SELECT
OLEOBJECT.SELECTION.horizontalalignment = xlright
*!* OLEOBJECT.SELECTION.VerticalAlignment = xlJustify

OLEOBJECT.RANGE("B2:E2").SELECT
OLEOBJECT.SELECTION.horizontalalignment = xlcenter
*!* OLEOBJECT.SELECTION.merge

OLEOBJECT.RANGE("B3:E3").SELECT

OLEOBJECT.SELECTION.horizontalalignment = -4152 && прижать вправо
*!* OLEOBJECT.SELECTION.merge

OLEOBJECT.RANGE("B4:E4").SELECT
OLEOBJECT.SELECTION.horizontalalignment = -4152 && прижать вправо
*!* OLEOBJECT.SELECTION.merge

OLEOBJECT.RANGE("B5:E5").SELECT
OLEOBJECT.SELECTION.horizontalalignment = -4152 && прижать вправо
*!* OLEOBJECT.SELECTION.merge

OLEOBJECT.RANGE("F2").SELECT
OLEOBJECT.SELECTION.FONT.italic = .T.

OLEOBJECT.SELECTION.FONT.NAME = "Arial"
OLEOBJECT.SELECTION.FONT.SIZE = 7

SELECT qr_zakaz_pr
USE
DELETE FILE qr_zakaz_pr.DBF
DELETE FILE qr_zakaz_pr.CDX

A.Пинигин, СБОРНИК прибамбасов для VFP по материалам конференций, литературы и собственных разработок. г. Рига E-mail: apinigin@olainfarm.lv
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.718)
Дополнения пользователей
Работа из VFP с EXCEL с использованием OLE
[+][?]
Lwa
04.03.07 20:32:33

Подскажите пожалуйста как из VFP с использованием OLE создавать новые листы уже в открытом XLS и
переключаться между этими листами для вывода различной информации на разные листы.
Lwa
04.03.07 20:33:42

Подскажите пожалуйста как из VFP с использованием OLE создавать новые листы уже в открытом XLS и
переключаться между этими листами для вывода различной информации на разные листы.
Lwa
04.03.07 20:33:48

Подскажите пожалуйста как из VFP с использованием OLE создавать новые листы уже в открытом XLS и
переключаться между этими листами для вывода различной информации на разные листы.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика