Return-Path: X-Original-To: apmail-poi-dev-archive@www.apache.org Delivered-To: apmail-poi-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3E75810B8C for ; Mon, 9 Dec 2013 14:12:03 +0000 (UTC) Received: (qmail 88733 invoked by uid 500); 9 Dec 2013 14:11:59 -0000 Delivered-To: apmail-poi-dev-archive@poi.apache.org Received: (qmail 88417 invoked by uid 500); 9 Dec 2013 14:11:56 -0000 Mailing-List: contact dev-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "POI Developers List" Delivered-To: mailing list dev@poi.apache.org Received: (qmail 88408 invoked by uid 99); 9 Dec 2013 14:11:54 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Dec 2013 14:11:54 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of detlef.brendle@canoo.com designates 195.141.68.118 as permitted sender) Received: from [195.141.68.118] (HELO nelson.canoo.com) (195.141.68.118) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Dec 2013 14:11:47 +0000 Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id DFDB06FC009 for ; Mon, 9 Dec 2013 15:11:25 +0100 (CET) X-Virus-Scanned: amavisd-new at nelson.canoo.com Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XJqGMZzmwedz for ; Mon, 9 Dec 2013 15:11:25 +0100 (CET) Received: from nelson.canoo.com (nelson.canoo.com [192.168.0.9]) by nelson.canoo.com (Postfix) with ESMTP id 36DEF6FC004 for ; Mon, 9 Dec 2013 15:11:25 +0100 (CET) Date: Mon, 9 Dec 2013 15:11:25 +0100 (CET) From: Detlef Brendle To: POI Developers List Message-ID: <1244499297.63355.1386598285103.JavaMail.root@canoo.com> In-Reply-To: <1952918399.10696.1386427079167.JavaMail.root@canoo.com> Subject: Re: Excel Function COUNTIFS available in poi ? MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_63349_1184409880.1386598285096" X-Mailer: Zimbra 7.2.4_GA_2900 (ZimbraWebClient - FF3.0 (Linux)/7.2.4_GA_2900) X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_63349_1184409880.1386598285096 Content-Type: multipart/alternative; boundary="----=_Part_63350_1350929117.1386598285096" ------=_Part_63350_1350929117.1386598285096 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Poi Team,=20 I have come up with a proposal for an implementation for this function. Ple= ase see the attached function plus its testcase.=20 It works pretty nicely I would say.=20 Maybe you can integrate it to one of your next releases ?=20 Thanks,=20 detlef=20 ----- Urspr=C3=BCngliche Mail ----- Von: "Detlef Brendle" =20 An: dev@poi.apache.org=20 Gesendet: Samstag, 7. Dezember 2013 15:37:59=20 Betreff: Excel Function COUNTIFS available in poi ?=20 Hi,=20 is the function countifs (http://office.microsoft.com/en-us/excel-help/coun= tifs-function-HA010047494.aspx) available in the latest poi (3.10-beta2)=20 Doesn't look like to me.=20 Has anybody implemented this function itself ?=20 Thanks,=20 detlef=20 ------=_Part_63350_1350929117.1386598285096 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <= div style=3D'font-family: arial,helvetica,sans-serif; font-size: 10pt; colo= r: #000000'>Hi Poi Team,

I have come up with a proposal for an impl= ementation for this function. Please see the attached function plus its tes= tcase.
It works pretty nicely I would say.

Maybe you can integrat= e it to one of your next releases ?

Thanks,
detlef


= Von: "Detlef Brendle" <detlef.brendle@canoo.com>
An: dev@poi.apache.org
Gesendet: Samstag, 7. Dezember 2013 15:37:59<= br>Betreff: Excel Function COUNTIFS available in poi ?

Hi, is the function countifs (http://office.microsoft.com/en-us/excel-help/co= untifs-function-HA010047494.aspx) available in the latest poi (3.10-beta2) =

Doesn't look like to me.
Has anybody implemented this function = itself ?

Thanks,
detlef

------=_Part_63350_1350929117.1386598285096-- ------=_Part_63349_1184409880.1386598285096 Content-Type: text/x-java; name=CountifsTests.java Content-Disposition: attachment; filename=CountifsTests.java Content-Transfer-Encoding: base64 cGFja2FnZSBvcmcucGlsbGFyb25lLnJpc2thbmFseXRpY3MuYXBwbGljYXRpb24udWkubWFpbi5h Y3Rpb24uZXhwb3J0aW1wb3J0OwoKaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuYXRw LkFuYWx5c2lzVG9vbFBhazsKaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLnVzZXJtb2RlbC4qOwpp bXBvcnQgb3JnLmFwYWNoZS5wb2kueHNzZi51c2VybW9kZWwuWFNTRldvcmtib29rOwppbXBvcnQg b3JnLmp1bml0LkJlZm9yZTsKaW1wb3J0IG9yZy5qdW5pdC5UZXN0OwoKcHVibGljIGNsYXNzIENv dW50aWZzVGVzdHMgewoKICAgIEBCZWZvcmUKICAgIHB1YmxpYyB2b2lkIHNldHVwKCkgewogICAg ICAgIGlmICghQW5hbHlzaXNUb29sUGFrLmdldFN1cHBvcnRlZEZ1bmN0aW9uTmFtZXMoKS5jb250 YWlucygiQ09VTlRJRlMiKSkgewogICAgICAgICAgICBBbmFseXNpc1Rvb2xQYWsucmVnaXN0ZXJG dW5jdGlvbigiQ09VTlRJRlMiLCBuZXcgQ291bnRpZnMoKSk7CiAgICAgICAgfQogICAgfQoKICAg IEBUZXN0CiAgICBwdWJsaWMgdm9pZCBjYWxsRnVuY3Rpb24oKSB7CiAgICAgICAgWFNTRldvcmti b29rIHdvcmtib29rID0gbmV3IFhTU0ZXb3JrYm9vaygpOwogICAgICAgIFNoZWV0IHNoZWV0ID0g d29ya2Jvb2suY3JlYXRlU2hlZXQoInRlc3QiKTsKICAgICAgICBSb3cgcm93MSA9IHNoZWV0LmNy ZWF0ZVJvdygwKTsKICAgICAgICBDZWxsIGNlbGxBMSA9IHJvdzEuY3JlYXRlQ2VsbCgwLCBDZWxs LkNFTExfVFlQRV9GT1JNVUxBKTsKICAgICAgICBDZWxsIGNlbGxCMSA9IHJvdzEuY3JlYXRlQ2Vs bCgxLCBDZWxsLkNFTExfVFlQRV9OVU1FUklDKTsKICAgICAgICBDZWxsIGNlbGxDMSA9IHJvdzEu Y3JlYXRlQ2VsbCgyLCBDZWxsLkNFTExfVFlQRV9OVU1FUklDKTsKICAgICAgICBDZWxsIGNlbGxE MSA9IHJvdzEuY3JlYXRlQ2VsbCgzLCBDZWxsLkNFTExfVFlQRV9OVU1FUklDKTsKICAgICAgICBj ZWxsQjEuc2V0Q2VsbFZhbHVlKDEpOwogICAgICAgIGNlbGxDMS5zZXRDZWxsVmFsdWUoMSk7CiAg ICAgICAgY2VsbEQxLnNldENlbGxWYWx1ZSgyKTsKCiAgICAgICAgY2VsbEExLnNldENlbGxGb3Jt dWxhKCJDT1VOVElGUyhCMTpDMSwxLCBEMTpEMSwyKSIpOwogICAgICAgIEZvcm11bGFFdmFsdWF0 b3IgZXZhbHVhdG9yID0gd29ya2Jvb2suZ2V0Q3JlYXRpb25IZWxwZXIoKS5jcmVhdGVGb3JtdWxh RXZhbHVhdG9yKCk7CiAgICAgICAgQ2VsbFZhbHVlIGV2YWx1YXRlID0gZXZhbHVhdG9yLmV2YWx1 YXRlKGNlbGxBMSk7CiAgICAgICAgYXNzZXJ0IDEgPT0gZXZhbHVhdGUuZ2V0TnVtYmVyVmFsdWUo KTsKICAgIH0KCiAgICBAVGVzdAogICAgcHVibGljIHZvaWQgY2FsbEZ1bmN0aW9uX2ludmFsaWRB cmdzKCkgewogICAgICAgIFhTU0ZXb3JrYm9vayB3b3JrYm9vayA9IG5ldyBYU1NGV29ya2Jvb2so KTsKICAgICAgICBTaGVldCBzaGVldCA9IHdvcmtib29rLmNyZWF0ZVNoZWV0KCJ0ZXN0Iik7CiAg ICAgICAgUm93IHJvdzEgPSBzaGVldC5jcmVhdGVSb3coMCk7CiAgICAgICAgQ2VsbCBjZWxsQTEg PSByb3cxLmNyZWF0ZUNlbGwoMCwgQ2VsbC5DRUxMX1RZUEVfRk9STVVMQSk7CiAgICAgICAgY2Vs bEExLnNldENlbGxGb3JtdWxhKCJDT1VOVElGUygpIik7CiAgICAgICAgRm9ybXVsYUV2YWx1YXRv ciBldmFsdWF0b3IgPSB3b3JrYm9vay5nZXRDcmVhdGlvbkhlbHBlcigpLmNyZWF0ZUZvcm11bGFF dmFsdWF0b3IoKTsKICAgICAgICBDZWxsVmFsdWUgZXZhbHVhdGUgPSBldmFsdWF0b3IuZXZhbHVh dGUoY2VsbEExKTsKICAgICAgICBhc3NlcnQgMTUgPT0gZXZhbHVhdGUuZ2V0RXJyb3JWYWx1ZSgp OwogICAgICAgIGNlbGxBMS5zZXRDZWxsRm9ybXVsYSgiQ09VTlRJRlMoQTE6QzEpIik7CiAgICAg ICAgZXZhbHVhdG9yID0gd29ya2Jvb2suZ2V0Q3JlYXRpb25IZWxwZXIoKS5jcmVhdGVGb3JtdWxh RXZhbHVhdG9yKCk7CiAgICAgICAgZXZhbHVhdGUgPSBldmFsdWF0b3IuZXZhbHVhdGUoY2VsbEEx KTsKICAgICAgICBhc3NlcnQgMTUgPT0gZXZhbHVhdGUuZ2V0RXJyb3JWYWx1ZSgpOwogICAgICAg IGNlbGxBMS5zZXRDZWxsRm9ybXVsYSgiQ09VTlRJRlMoQTE6QzEsMiwyKSIpOwogICAgICAgIGV2 YWx1YXRvciA9IHdvcmtib29rLmdldENyZWF0aW9uSGVscGVyKCkuY3JlYXRlRm9ybXVsYUV2YWx1 YXRvcigpOwogICAgICAgIGV2YWx1YXRlID0gZXZhbHVhdG9yLmV2YWx1YXRlKGNlbGxBMSk7CiAg ICAgICAgYXNzZXJ0IDE1ID09IGV2YWx1YXRlLmdldEVycm9yVmFsdWUoKTsKICAgIH0KfQo= ------=_Part_63349_1184409880.1386598285096 Content-Type: text/x-java; name=Countifs.java Content-Disposition: attachment; filename=Countifs.java Content-Transfer-Encoding: base64 cGFja2FnZSBvcmcucGlsbGFyb25lLnJpc2thbmFseXRpY3MuYXBwbGljYXRpb24udWkubWFpbi5h Y3Rpb24uZXhwb3J0aW1wb3J0OwoKaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuT3Bl cmF0aW9uRXZhbHVhdGlvbkNvbnRleHQ7CmltcG9ydCBvcmcuYXBhY2hlLnBvaS5zcy5mb3JtdWxh LmV2YWwuRXJyb3JFdmFsOwppbXBvcnQgb3JnLmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5ldmFsLk51 bWJlckV2YWw7CmltcG9ydCBvcmcuYXBhY2hlLnBvaS5zcy5mb3JtdWxhLmV2YWwuVmFsdWVFdmFs OwppbXBvcnQgb3JnLmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5mdW5jdGlvbnMuQ291bnRpZjsKaW1w b3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZnVuY3Rpb25zLkZyZWVSZWZGdW5jdGlvbjsK CnB1YmxpYyBjbGFzcyBDb3VudGlmcyBpbXBsZW1lbnRzIEZyZWVSZWZGdW5jdGlvbiB7CiAgICBA T3ZlcnJpZGUKICAgIHB1YmxpYyBWYWx1ZUV2YWwgZXZhbHVhdGUoVmFsdWVFdmFsW10gYXJncywg T3BlcmF0aW9uRXZhbHVhdGlvbkNvbnRleHQgZWMpIHsKICAgICAgICBEb3VibGUgcmVzdWx0ID0g bnVsbDsKICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCB8fCBhcmdzLmxlbmd0aCAlIDIgPiAw KSB7CiAgICAgICAgICAgIHJldHVybiBFcnJvckV2YWwuVkFMVUVfSU5WQUxJRDsKICAgICAgICB9 CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKSB7CiAgICAgICAgICAg IFZhbHVlRXZhbCBmaXJzdEFyZyA9IGFyZ3NbaV07CiAgICAgICAgICAgIFZhbHVlRXZhbCBzZWNv bmRBcmcgPSBhcmdzW2kgKyAxXTsKICAgICAgICAgICAgaSArPSAyOwogICAgICAgICAgICBOdW1i ZXJFdmFsIGV2YWx1YXRlID0gKE51bWJlckV2YWwpIG5ldyBDb3VudGlmKCkuZXZhbHVhdGUobmV3 IFZhbHVlRXZhbFtde2ZpcnN0QXJnLCBzZWNvbmRBcmd9LCBlYy5nZXRSb3dJbmRleCgpLCBlYy5n ZXRDb2x1bW5JbmRleCgpKTsKICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CiAgICAg ICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0ZS5nZXROdW1iZXJWYWx1ZSgpOwogICAgICAgICAg ICB9IGVsc2UgaWYgKGV2YWx1YXRlLmdldE51bWJlclZhbHVlKCkgPCByZXN1bHQpIHsKICAgICAg ICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlLmdldE51bWJlclZhbHVlKCk7CiAgICAgICAgICAg IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJFdmFsKHJlc3VsdCA9PSBudWxs ID8gMCA6IHJlc3VsdCk7CiAgICB9Cn0KCg== ------=_Part_63349_1184409880.1386598285096 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org For additional commands, e-mail: dev-help@poi.apache.org ------=_Part_63349_1184409880.1386598285096--