Once again, like Python, is it callable from RPG, and can it call RPG. And the solution must execute on IBM i.
Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx
-----Matt Olson <Matt.Olson@xxxxxxxx> wrote: -----
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
From: Matt Olson <Matt.Olson@xxxxxxxx>
Date: 03/02/2016 10:21AM
Subject: RE: Update Excel with RPG
Another thought. Use .NET and Open XML SDK:
https://github.com/OfficeDev/Open-XML-SDK
Add/Remove/Updating cells and worksheets example here:
https://msdn.microsoft.com/en-us/library/office/hh180830(v=office.14).aspx
There are also many other options such as: EPPlus:
http://epplus.codeplex.com/
You can make charts, pivot tables, update/remove data with either of those two libraries.
The Open XML SDK is the more complete one though as it supports the latest Office 2016 OXML extensions.
Matt
-----Original Message-----
From: John Yeung [mailto:gallium.arsenide@xxxxxxxxx]
Sent: Tuesday, March 1, 2016 5:31 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: Re: Update Excel with RPG
On Tue, Mar 1, 2016 at 10:50 AM, Mark Murphy/STAR BASE Consulting Inc.
<mmurphy@xxxxxxxxxxxxxxx> wrote:
Porting a C or C++ library to ILE C/C++ to be called by RPG would be significantly more performant than Java, and not Goldbergian at all.
I agree it would be more performant than Java, especially if you're not crossing the boundary between "native" and PASE. Even if you were relying on PASE, C/C++ should be faster than Java (both on PASE).
I also agree that a native port to ILE C/C++ would be less Goldbergian to *use* than a PASE port, but the native port would also require greater effort to create in the first place. It's hard for me to envision anyone having the required time, expertise, and interest to do it when the pre-existing options (including RPG wrappers for POI) are not all that horrible.
As far as Python goes, I do not know much about it other than it cares about proper indenting to know which statements go with which control blocks. Can it be called by a program object?
Depends on what you mean. The iSeriesPython interpreter is a native i command (*CMD). You call it more or less like you would call the Rexx interpreter, so in practice the calling program would have to be a CLP, or the job scheduler, or use QCMDEXC or QCAPCMD. Scripts in either Python or Rexx are not stand-alone executables, but effectively an input parameter to the interpreter. You can also pass additional input parameters, but there is no way to get information out directly from the call. (The script's only means of returning information is through writing to a file, data area, user space, spooled file, socket, etc.)
I haven't used IBM's Python for PASE, but I imagine the parameter situation is pretty much the same as for iSeriesPython.
Can it call into a program object, or better a service program?
iSeriesPython scripts can call native program objects (*PGM) no problem, with both input and output parameters. It looks like the guy who created iSeriesPython intended for you to be able to call service program procedures as well, but that interface is at least partially broken and I haven't bothered to test it extensively enough to know if it's completely broken.
I have no experience with IBM's Python for PASE, but I don't think it can call native programs directly. It uses XMLSERVICE to do much (maybe all?) of the interop with the native side.
John Y.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
As an Amazon Associate we earn from qualifying purchases.