рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХреНрд╕реЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрдХреНрдд рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛред
рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, OLE рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд╛ рддрдВрддреНрд░ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдерд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, OpenOffice рдХреЛ C ++ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдкреАрдЖрдИ рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред

рдкреНрд░рд▓реЗрдЦрди рдмрд╣реБрдд рджреБрд░реНрд▓рдн рдирд┐рдХрд▓рд╛, рдФрд░ OLE рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХреЗ рд▓рдЧрднрдЧ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдереЗред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╣рдм рдкрд░ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рд╢реЛрдзреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛
рд▓реЗрдЦ рдХреА рдирдореВрдирд╛ рд░реВрдкрд░реЗрдЦрд╛:1. C ++ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ OpenOffice API рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛
1.1ред рд╣реИрдбрд░ рдЬреЗрдирд░реЗрд╢рди
1.2ред RDB рдЯрд╛рдЗрдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛
1.3ред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2008 рд╕реЗрдЯрдЕрдк
1.4ред рдПрдХ рдЧрддрд┐рд╢реАрд▓ dll рдмрдирд╛рдПрдБ
2. рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ DLL рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
2.1ред рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЕрдЧрд░ DLL рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЪрд░рдг 1 рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
1. C ++ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ OpenOffice API рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛
рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╡рд┐рдХрд┐ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
wiki.services.openoffice.org/wiki/SDKInstallation ред
рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрд╕рдбреАрдХреЗ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд░реНрд╡рд┐рд╕реЗрдЬрд╝ редopenoffice.org/files/able рдкрддрд╛ред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрд╕рдбреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдПрд╕рдбреАрдХреЗ рдХреЛ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рд╕рд╣рд╛рдпрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ gnu make, zip (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ)
1.1ред рд╣реИрдбрд░ рдЬреЗрдирд░реЗрд╢рди
рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ setdkenv_windows.bat рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рдФрд░ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред
рд╣рдо рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдХрд░ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдПрдЧреАред
рд╣рдо рдХрдВрд╕реЛрд▓ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЙрддреНрдкрдиреНрди рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА рддреИрдпрд╛рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдо рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рдЬрдирд░реЗрд╢рди рдЯреАрдо:cppumaker -Gc -BUCR -O "c:\Program Files\OpenOffice_SDK\sdk\inludecpp" "c:\Program Files\OpenOffice.org 3\URE\misc\types.rdb" "c:\Program Files\OpenOffice.org 3\Basis\program\offapi.rdb"
рдЬрд╣рд╛рдБ
c: \ Program Files \ OpenOffice_SDK \ sdk \ inludecpp - рд╡рд╣ рдлрд╝реЛрд▓реНрдбрд░ рдЬрд╣рд╛рдБ рд╣рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ
c: \ Program Files \ OpenOffice.org 3 \ - рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдкрде
1.2ред RDB рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд░рдбреАрдмреА рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
RDB рдлрд╝рд╛рдЗрд▓ OpenOffice рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рд╣реИред
рдпрд╣ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:"C:\Program Files\OpenOffice.org 3\URE\bin\regmerge" "d:\oo\OOAPI\Debug\OOAPI.rdb" / "c:\Program Files\OpenOffice.org 3\URE\misc\types.rdb"
рдЬрд╣рд╛рдБ C: \ Program Files \ OpenOffice.org 3 \ _ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИ
d: \ oo \ OOAPI \ Debug \ - рд╡рд╣ рдкрде рдЬрд╣рд╛рдБ рдлрд╝рд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХреА рдЬрд╛рдПрдЧреА
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ:"C:\Program Files\OpenOffice.org 3\URE\bin\regcomp" -register -r "d:\oo\OOAPI\Debug\OOAPI.rdb" -c connector.uno.dll
"C:\Program Files\OpenOffice.org 3\URE\bin\regcomp" -register -r "d:\oo\OOAPI\Debug\OOAPI.rdb" -c remotebridge.uno.dll
"C:\Program Files\OpenOffice.org 3\URE\bin\regcomp" -register -r "d:\oo\OOAPI\Debug\OOAPI.rdb" -c bridgefac.uno.dll
"C:\Program Files\OpenOffice.org 3\URE\bin\regcomp" -register -r "d:\oo\OOAPI\Debug\OOAPI.rdb" -c uuresolver.uno.dll
1.3ред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2008 рд╕реЗрдЯрдЕрдк
рд╣рдо рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдЙрдкрдХрд░рдг -> рд╡рд┐рдХрд▓реНрдк-> рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ>> рдХреБрд▓рдкрддрд┐ + рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ -> рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рдЙрддреНрдкрдиреНрди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдЬреЛрдбрд╝реЗрдВ: <oo_sdk_path> \ inludecpp
рдЙрдкрдХрд░рдг -> рд╡рд┐рдХрд▓реНрдк-> рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ>> рдХреБрд▓рдкрддрд┐ + рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ -> рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлрд╛рдЗрд▓реЗрдВ
<oo_sdk_path> \ lib рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ
рдЙрдкрдХрд░рдг -> рд╡рд┐рдХрд▓реНрдк-> рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ>> рдХреБрд▓рдкрддрд┐ + рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ -> рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ
<office_programm_dir> \ Program рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдг:
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ "рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдореЗрдВ рдмрджрд▓реЗрдВ
рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдЬреЛрдбрд╝реЗрдВ
рдЧреБрдг-> рд▓рд┐рдВрдХрд░-> рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХреЛрдорд╛рдВрдбрд▓рд╛рдЗрди
рдпрд╛ рддреЛ рдЬреЛрдбрд╝реЗрдВ:
isal.lib icppu.lib icppuhelper.lib рдЗрд╕рд╛рд▓.рд▓рд┐рдм isalhelper.lib ireg.lib irmcxt.lib stlport_vc71.lib
рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред
1.4ред рдПрдХ рдЧрддрд┐рд╢реАрд▓ dll рдмрдирд╛рдПрдБ
рдХрдИ рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
wiki.services.openoffice.org/wiki/Calc/API-ProgrammingDLL рдХреА рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЖрд░рдбреАрдмреА рдлрд╝рд╛рдЗрд▓ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреАрдврд╝реА рд╣реЛрддреА рд╣реИред
рдХрдиреЗрдХреНрдЯ, genRdb рдлрд╝рдВрдХреНрд╢рдирдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЖрд░рдбреАрдмреА рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
- рд╣рдо рдУрдкрдирдСрдлрд┐рд╕ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
startServer, getOOPath рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
- рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдлрд╝реНрд░реЗрдо рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ xls рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИред
- рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рд╕реНрдХ рдХреЗ рд▓рд┐рдП xls рдлрд╝рд╛рдЗрд▓
рдлрдВрдХреНрд╢рди ExportToUrl- рд░рд┐рд╡рд░реНрд╕ рдореЗрдХреЗрдирд┐рдЬреНрдо рднреА рд╕рдВрднрд╡ рд╣реИ: xls рдлрд╛рдЗрд▓ рдФрд░ рдЙрд╕рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛
рдлрд╝рдВрдХреНрд╢рди getVal, getTextрдореИрдВ DLL рдХреЛрдб рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреАред рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
ooapi.h:
ooapi.cpp: #include "stdafx.h"
рдЕрдВрддрд┐рдо рдЪреИрдЯ: Excel рдореЗрдВ рд▓реЛрдб рдФрд░ рдЕрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DLL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред