It's all open-source, done in the spare time of volunteers who have a need and/or desire to work on it.
In my case, I add features I need for work, and fix bugs that get in my way or may cause my users trouble. And sometimes fix bugs that just plain annoy me. There may be features and topics people are working on, but no centralized plan or roadmap. Patches and test cases are always welcome, many fixes and features come in that way. That's how I got started - I wanted formulas to evaluate faster, so I dug in, found an avenue for improvement, submitted a patch, got good feedback from committers about impacts I hadn't thought of, reworked the patch, submitted it, and had it applied. My work got what it needed, open source got better, and the end product was better than my individual efforts alone, a multiplier my boss could understand. On Fri, Apr 14, 2017 at 9:43 AM Blake Watson <blake.wat...@pnmac.com> wrote: > Thanks a lot! Is there a list somewhere to see what features are planned > for 3.17+? I can't seem to find a POI roadmap that shows (e.g.) that > conditional support was planned, or what's planned for future releases. > > On Fri, Apr 14, 2017 at 8:54 AM, Greg Woolsey <greg.wool...@gmail.com> > wrote: > > > This is in the nightly builds now and the upcoming 3.16 release. It > > probably should go in the release notes/change log on the web site, but > > hasn't yet. > > > > The main change was revision r1782894 [1] in reference to issue 58131 > [2]. > > > > There is now a ConditionalFormattingEvaluator class [3] to support these. > > You can see one use in the unit test [4], which uses a sample workbook > [5] > > built from the publicly available Excel help examples for conditional > > formatting. > > > > For evaluating other arbitrary expressions, there are new variations of > > WorkbookEvaluator.evaluate(...) [6] to support these, which are used by > > the > > conditional formatting evaluator as well. > > > > Check out the code, JavaDocs, and tests, and feel free to ask questions > and > > give any feedback you have. > > > > [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__svn. > > apache.org_viewvc-3Fview-3Drev-26rev-3D1782894&d=DwIFaQ&c= > > dmLomitc30UP5j2qU8E1rg&r=p42pHJHEwFZOHtVFHKJUdL2fYbroN33stXXb3Psthjw&m= > > oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s=r9MBM2C98rE4MQqH6V_ > > 9N3LfYdAUkr0hhNYEU_MRrMg&e= > > [2] https://urldefense.proofpoint.com/v2/url?u=https-3A__bz. > > apache.org_bugzilla_show-5Fbug.cgi-3Fid-3D58131&d=DwIFaQ&c= > > dmLomitc30UP5j2qU8E1rg&r=p42pHJHEwFZOHtVFHKJUdL2fYbroN33stXXb3Psthjw&m= > > > oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s=k3UpwdutL-pPZvlVnLNgUCGvJ3F- > > 7Rpcfk1EyN6EaFc&e= > > [3] > > https://urldefense.proofpoint.com/v2/url?u=https-3A__poi. > > apache.org_apidocs_org_apache_poi_ss_formula_ > > ConditionalFormattingEvaluator.html&d=DwIFaQ&c=dmLomitc30UP5j2qU8E1rg&r= > > p42pHJHEwFZOHtVFHKJUdL2fYbroN33stXXb3Psthjw&m= > > oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s=k9H02-_hML- > > L7JFQrOvSawvJPgqqwkZnqkwoP4Vf3qA&e= > > [4] > > https://urldefense.proofpoint.com/v2/url?u=http-3A__svn. > > apache.org_repos_asf_poi_trunk_src_ooxml_testcases_org_ > > apache_poi_ss_usermodel_ConditionalFormattingEvalTest.java&d=DwIFaQ&c= > > dmLomitc30UP5j2qU8E1rg&r=p42pHJHEwFZOHtVFHKJUdL2fYbroN33stXXb3Psthjw&m= > > oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s=cEnDZW3IixM1O0pBB6tV- > > IVCuMERO2ECqb_3A2jIbFs&e= > > [5] > > https://urldefense.proofpoint.com/v2/url?u=http-3A__svn. > > apache.org_repos_asf_poi_trunk_test-2Ddata_spreadsheet_ > > ConditionalFormattingSamples.xlsx&d=DwIFaQ&c=dmLomitc30UP5j2qU8E1rg&r= > > p42pHJHEwFZOHtVFHKJUdL2fYbroN33stXXb3Psthjw&m= > > oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s=qIftQTAEY1icGjsRyc7x6oa_ > > 5g4tjQCHt2ZjKNRoVag&e= > > [6] > > https://urldefense.proofpoint.com/v2/url?u=https-3A__poi. > > apache.org_apidocs_org_apache_poi_ss_formula_WorkbookEvaluator.html&d= > > DwIFaQ&c=dmLomitc30UP5j2qU8E1rg&r=p42pHJHEwFZOHtVFHKJUdL2fYbroN3 > > 3stXXb3Psthjw&m=oVx4cx4CWoEwyK7LauHPeeobVSud97PWgIY35BqX884&s= > > sZiv6666WcpGP0RZpgUoZ-pF5ZmMxwdRos3CNST2LsA&e= > > > > > All of the evaluation stuff I can find works on a Cell object. I > thought > > I > > > had seen something for evaluation of formula strings but I don't see it > > in > > > the FormulaEvaluator class (where I thought I had before). > > > > > > I feel like we might have to use the ?00BFormulaParser to get the Ptg[] > > but > > > I'm not sure what we do at that point. > > > > > > Hints? > > > > > > -- > > > > > > *Blake Watson* > > > > > > *PNMAC* > > > Application Development Manager > > > 5898 Condor Drive > > > Moorpark, CA 93021 > > > (805) 330.4911 x7742 <(805)%20330-4911> > > > blake.wat...@pnmac.com <melanie.petros...@pnmac.com> > > > www.PennyMacUSA.com <http://www.pennymacusa.com/> > > > ransaction_X�u� �? > > > > > > -- > > *Blake Watson* > > *PNMAC* > Application Development Manager > 5898 Condor Drive > Moorpark, CA 93021 > (805) 330.4911 x7742 <(805)%20330-4911> > blake.wat...@pnmac.com <melanie.petros...@pnmac.com> > www.PennyMacUSA.com <http://www.pennymacusa.com/> >