Popular Post GMK Posted June 5, 2013 Popular Post Share Posted June 5, 2013 (edited) I decided to enhance the functionality of the OOo COM UDF found >here and >here. Thanks to Leagnus and Andy G for providing the initial functions and framework. This UDF includes the following working functions: _OOoCalc_BookNew _OOoCalc_BookOpen _OOoCalc_BookAttach _OOoCalc_BookSave _OOoCalc_BookSaveAs _OOoCalc_BookClose _OOoCalc_WriteCell _OOoCalc_WriteFormula _OOoCalc_WriteFromArray _OOoCalc_HyperlinkInsert _OOoCalc_RangeMoveOrCopy _OOoCalc_RangeSort _OOoCalc_RangeClearContents _OOoCalc_CreateBorders _OOoCalc_NumberFormat _OOoCalc_ReadCell _OOoCalc_ReadSheetToArray _OOoCalc_RowDelete _OOoCalc_ColumnDelete _OOoCalc_RowInsert _OOoCalc_ColumnInsert _OOoCalc_SheetAddNew _OOoCalc_SheetDelete _OOoCalc_SheetNameGet _OOoCalc_SheetNameSet _OOoCalc_SheetList _OOoCalc_SheetActivate _OOoCalc_SheetSetVisibility _OOoCalc_SheetMove _OOoCalc_SheetPrint _OOoCalc_HorizontalAlignSet _OOoCalc_FontSetProperties _OOoCalc_CellSetColors _OOoCalc_RowSetColors _OOoCalc_ColumnSetColors _OOoCalc_RowSetProperties _OOoCalc_ColumnSetProperties _OOoCalc_FindInRange _OOoCalc_ReplaceInRange Please help me test this and let me know of any problems, questions, suggestions or comments you may have. Edit (August 5, 2016): Latest files have been uploaded. Script-breaking changes include renaming the functions to start with _OOoCalc_. Edit (November 14, 2016): New version, including fixed sort function! Edit (November 15, 2016): Lots of minor changes including tightening up the error checking. Edit (November 16, 2016): Added ByRef to object parameters. Edited demo. OOoCalcConstants.au3 OOoCalc.au3 OOoCalc_Demo.au3 Edited November 16, 2016 by GMK File Update (2016/11/16) pat4005, mLipok, ratus69 and 5 others 8 Link to comment Share on other sites More sharing options...
Mehomic Posted June 5, 2013 Share Posted June 5, 2013 (edited) GMK: Thanks for posting this 'updated' version of the OOCalc UDF? I can confirm that your demo file works well in the current stable Apache OpenOffice v 3.4.1 version. It did not report any errors. I am sure there will be a use for this script. Again, Many thanks for sharing. Edited June 5, 2013 by Mehomic Link to comment Share on other sites More sharing options...
mLipok Posted July 23, 2013 Share Posted July 23, 2013 Very usefull UDF and example Thanks for sharing Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
DickWms Posted August 5, 2013 Share Posted August 5, 2013 I've tried to run the example but get the following error: OOoCalc.au3 (3151) : ==> Variable must be of type "Object".: Local $oSM = ObjCreate("com.sun.star.ServiceManager"), $oReturn = $oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue") Local $oSM = ObjCreate("com.sun.star.ServiceManager"), $oReturn = $oSM^ ERROR >Exit code: 1 Time: 2.335 Any help would be appreciated. Dick Williams Link to comment Share on other sites More sharing options...
BrewManNH Posted August 5, 2013 Share Posted August 5, 2013 (edited) Do you have OpenOffice installed? EdIt: Or LibreOffice? Edited August 5, 2013 by BrewManNH If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
DickWms Posted August 6, 2013 Share Posted August 6, 2013 Yes - It's Open Office 3.4.1 on a Windows 8, 64 bit, computer. Dick Williams Link to comment Share on other sites More sharing options...
GMK Posted August 6, 2013 Author Share Posted August 6, 2013 Unfortunately, I'm unable to test on Windows 8. Can anyone else with Windows 8 run the example successfully? Link to comment Share on other sites More sharing options...
BrewManNH Posted August 6, 2013 Share Posted August 6, 2013 Just a suggestion, add some error checking to the UDF functions because currently there's practically none. That error wouldn't have crashed the script if there was a check to see if $oSM was an object prior to trying to use it as one. @DickWms - Have you tried running the script as a 32 bit process instead of a 64 bit one? If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
DickWms Posted August 6, 2013 Share Posted August 6, 2013 Thank you for the suggestion. I have now tried the Run Script (x86) option but get the same error message. Dick Willaims Link to comment Share on other sites More sharing options...
GMK Posted August 6, 2013 Author Share Posted August 6, 2013 I'm adding some additional error checking to the UDF. How far into the demo do you get? Link to comment Share on other sites More sharing options...
BrewManNH Posted August 6, 2013 Share Posted August 6, 2013 Without OOo or Libre installed, it's from the first call to _OOoCalcBookNew, as soon as it hits that it jumps to the function __OOoCalcSetPropertyValue which causes the error to appear. I'm guessing, and only a guess, that DickWms is seeing the same thing. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
DickWms Posted August 7, 2013 Share Posted August 7, 2013 I just get through the line: MsgBox(64 + 262144, $sTitle, "Create a new Book") The error seems to be called by the line: $oCalc = _OOoCalcBookNew() ;Create test file Dick Williams Link to comment Share on other sites More sharing options...
GMK Posted August 7, 2013 Author Share Posted August 7, 2013 I added some error checking and uploaded the latest version. (See ) Link to comment Share on other sites More sharing options...
DickWms Posted August 8, 2013 Share Posted August 8, 2013 I've tried the latest version. Here are the first few lines of the error messages I get. Dick Williams >"C:Program Files (x86)AutoIt3SciTE..autoit3.exe" /ErrorStdOut "C:Usersdickw_000Desktopnew autoitOOoCalc_Demo.au3" --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcBookNew ($_OOoCalcStatus_GeneralError - Unable to create service manager object) --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcSheetList ($_OOoCalcStatus_InvalidDataType - Invalid Calc object) --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcSheetNameSet ($_OOoCalcStatus_InvalidDataType - Invalid Calc object) --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcWriteCell ($_OOoCalcStatus_InvalidDataType - Invalid Calc object) --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcCellSetColors ($_OOoCalcStatus_InvalidDataType - Invalid Calc object) --> OOoCalc.au3 V2.1.0 Error from function _OOoCalcWriteCell ($_OOoCalcStatus_InvalidDataType - Invalid Calc object) Link to comment Share on other sites More sharing options...
GMK Posted August 8, 2013 Author Share Posted August 8, 2013 (edited) Unfortunately, I don't have a Windows 8 machine with OpenOffice 3.4.1. Have you tried re-installing (possibly after uninstalling) OpenOffice? (EDIT: Make sure you do a full install, in case there are some components missing at the moment.) There sounds like something different going on with Windows 8 that doesn't allow the UNO objects to be created. If that doesn't work (and I know this might be asking a bit much), would it be possible to download and install LibreOffice 4.1 and test with that? Edited August 8, 2013 by GMK Link to comment Share on other sites More sharing options...
GMK Posted August 8, 2013 Author Share Posted August 8, 2013 I just stumbled upon a possible cause of the problem. It's possible that there could be a class permissions issue, in which case you'd have to go to the Component Services administrative tool. I'm guessing you'll want to look for OpenOffice Service Manager, or something similar. Link to comment Share on other sites More sharing options...
DickWms Posted August 8, 2013 Share Posted August 8, 2013 Success - I uninstalled Office 3.4.1 and installed Office 4.0.0. OOoCalc_Demo.au3 sems to run just fine now. Thank you for your help. Dick Williams Link to comment Share on other sites More sharing options...
GMK Posted August 8, 2013 Author Share Posted August 8, 2013 Glad you got it to work! Link to comment Share on other sites More sharing options...
Wombat Posted December 18, 2013 Share Posted December 18, 2013 If I may make a suggestion... It would extremely helpful if you could add the $fVisible parameter into _OOoCalcBookOpen so that we can open the book hidden just as we are able to in the _ExcelBookOpen. This makes a world of difference if someone just wants to write data to a file without actually showing the file. Just look at us.Everything is backwards; everything is upside down. Doctors destroy health. Lawyers destroy justice. Universities destroy knowledge. Governments destroy freedom. The major media destroy information and religions destroy spirituality. ~ Michael Ellner The internet is our one and only hope at a truly free world, do not let them take it from us... Link to comment Share on other sites More sharing options...
BrewManNH Posted December 18, 2013 Share Posted December 18, 2013 I don't believe that option is possible with OOo because OOo's interface doesn't support it. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now