Tekrar merhaba.
Var olan bir excel dosyası açma içine veri yazma ve resim ekleme ile ilgili aşağıdaki kodu bulup uyarladım. Belki kullanıcıların işine yarayabilir.
excel dosya ve resim dosya yollarını kendinize göre değiştirerek çalıştırısanız sorun çıkmaz sanırım.
*--open ofis kurulumu?
install_openoffice = OOoIsInstalled()
If install_openoffice
=Messagebox("open office kurulu",64,"")
Endif
*--varolan bir excel dosyasi cagir
oDoc = OOoOpenFile("Z:\vfp_projeleri2\analiz\sound\lacrosse\REPORTS\clip_actions_list.xls")
Local oSheet
oSheet = oDoc.getSheets().getByIndex( 0 )
* hucrelere veri ekleme sutun,satir
oSheet.getCellByPosition( 0, 7 ).setString( "Julaaaa" )
oSheet.getCellByPosition( 0, 8 ).setString( "Aug" )
oSheet.getCellByPosition( 0, 9 ).setString( "Sep" )
oSheet.getCellByPosition( 0, 10 ).setString( "Oct" )
oSheet.getCellByPosition( 0, 11 ).setString( "Nov" )
oSheet.getCellByPosition( 0, 12 ).setString( "Dec" )
*--resim ekleme basi
Document = oDoc.CurrentController.Frame
oooServiceManager = Createobject("com.sun.star.ServiceManager")
dispatcher = oooServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
Local Array args1[1]
args1[1] = OOoPropertyValue( "ToPoint", "$C$5" )
dispatcher.executeDispatch(Document, ".uno:GoToCell", "", 0, @args1)
Local Array args2[3]
args2[1] = OOoPropertyValue( "FileName", "file:///C:/Users/Bilal ADAY.KARANFILALANI/Desktop/5.png" )
args2[2] = OOoPropertyValue( "FilterName", "<All formats>" )
args2[3] = OOoPropertyValue( "AsLink", .F. )
dispatcher.executeDispatch(Document, ".uno:InsertGraphic", "", 0, @args2)
*--resim ekleme sonu
*args1[1] = OOoPropertyValue( "ToPoint", "$Z$25" )
*dispatcher.executeDispatch(Document, ".uno:GoToCell", "", 0, @args1)
*dispatcher.executeDispatch(Document, ".uno:InsertGraphic", "", 0, @args2)
*--open ofis kurulumu basi
Function OOoIsInstalled()
Local oServiceManager
oServiceManager = .Null.
Local cOldErrHandler
cOldErrHandler = On( "ERROR" )
*ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS(16), PROGRAM(), SYS(2018) )
oServiceManager = OOoGetServiceManager()
On Error &cOldErrHandler
* If we could create a Service Manager,
* then OpenOffice.org must be installed.
Return Not Isnull( oServiceManager )
Endfunc
Function OOoGetServiceManager()
If (Type([goOOoServiceManager])!="O") Or Isnull( goOOoServiceManager )
Public goOOoServiceManager
goOOoServiceManager = Createobject( "com.sun.star.ServiceManager" )
Endif
Return goOOoServiceManager
Endfunc
*--open ofis kurulumu sonu
*--varolan bir excel dosyasi cagir basi
Function OOoOpenFile( cFilename )
Local cURL
cURL = OOoConvertToURL( cFilename )
Local oDoc
oDoc = OOoOpenURL( cURL )
Return oDoc
Endfunc
Function OOoConvertToURL( cFilename )
* Ensure leading slash.
If Left( cFilename, 1 ) != "/"
cFilename = "/" + cFilename
Endif
Local cURL
cURL = Chrtran( cFilename, "\", "/" ) && change backslashes to forward slashes.
cURL = "file://" + cURL
Return cURL
Endfunc
Function OOoOpenURL( cURL )
* LOCAL oPropertyValue
* oPropertyValue = OOoCreateStruct( "com.sun.star.beans.PropertyValue" )
* LOCAL ARRAY aNoArgs[1]
* aNoArgs[1] = oPropertyValue
* aNoArgs[1].Name = "ReadOnly"
* aNoArgs[1].Value = .F.
* These two lines replace the alternate version above,
* which are left commented for the insight they provide.
Local Array aNoArgs[1]
aNoArgs[1] = OOoPropertyValue( "Hidden", .F. )
Local oDesktop
oDesktop = OOoGetDesktop()
Local oDoc
oDoc = oDesktop.LoadComponentFromUrl( cURL, "_blank", 0, @ aNoArgs )
* Make sure that arrays passed to this document are passed zero based.
Comarray( oDoc, 10 )
Return oDoc
Endfunc
Function OOoGetDesktop()
If (Type([goOOoDesktop])!="O") Or Isnull( goOOoDesktop )
Public goOOoDesktop
goOOoDesktop = OOoServiceManager_CreateInstance( "com.sun.star.frame.Desktop" )
Comarray( goOOoDesktop, 10 )
Endif
Return goOOoDesktop
Endfunc
Function OOoPropertyValue( cName, uValue, nHandle, nState )
Local oPropertyValue
oPropertyValue = OOoCreateStruct( "com.sun.star.beans.PropertyValue" )
oPropertyValue.Name = cName
oPropertyValue.Value = uValue
If Type([nHandle])="N"
oPropertyValue.Handle = nHandle
Endif
If Type([nState])="N"
oPropertyValue.State = nState
Endif
Return oPropertyValue
Endfunc
Function OOoServiceManager_CreateInstance( cServiceName )
Local oServiceManager
oServiceManager = OOoGetServiceManager()
Local oInstance
oInstance = .Null.
Local cOldErrHandler
cOldErrHandler = On( "ERROR" )
* ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS(16), PROGRAM(), SYS(2018) )
oInstance = oServiceManager.createInstance( cServiceName )
On Error &cOldErrHandler
If Isnull( oInstance )
=__OOoReleaseCachedVars()
oServiceManager = OOoGetServiceManager()
oInstance = oServiceManager.createInstance( cServiceName )
Endif
Return oInstance
Endfunc
Function OOoCreateStruct( cTypeName )
Local oServiceManager
oServiceManager = OOoGetServiceManager()
Local oStruct
oStruct = .Null.
Local cOldErrHandler
cOldErrHandler = On( "ERROR" )
*ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS(16), PROGRAM(), SYS(2018) )
oStruct = oServiceManager.Bridge_GetStruct( cTypeName )
On Error &cOldErrHandler
If Isnull( oStruct )
=__OOoReleaseCachedVars()
oServiceManager = OOoGetServiceManager()
oStruct = oServiceManager.Bridge_GetStruct( cTypeName )
Endif
Return oStruct
Endfunc