From 1d8a31724a7d9410a8baa4fd305b2d04494aeced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Walter?= Date: Fri, 11 Oct 2013 19:06:33 +0000 Subject: [PATCH] Bug 55057: patch for missing function Hex2Dec git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1531393 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/ss/formula/atp/AnalysisToolPak.java | 2 +- .../poi/ss/formula/functions/Hex2Dec.java | 99 ++++++++++++++++++ test-data/spreadsheet/FormulaEvalTestData.xls | Bin 172032 -> 172544 bytes 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 src/java/org/apache/poi/ss/formula/functions/Hex2Dec.java diff --git a/src/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java b/src/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java index bf9f8b743..a3898a701 100644 --- a/src/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java +++ b/src/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java @@ -106,7 +106,7 @@ public final class AnalysisToolPak implements UDFFinder { r(m, "GCD", null); r(m, "GESTEP", null); r(m, "HEX2BIN", null); - r(m, "HEX2DEC", null); + r(m, "HEX2DEC", Hex2Dec.instance); r(m, "HEX2OCT", null); r(m, "IFERROR", IfError.instance); r(m, "IMABS", null); diff --git a/src/java/org/apache/poi/ss/formula/functions/Hex2Dec.java b/src/java/org/apache/poi/ss/formula/functions/Hex2Dec.java new file mode 100644 index 000000000..6fdebf52c --- /dev/null +++ b/src/java/org/apache/poi/ss/formula/functions/Hex2Dec.java @@ -0,0 +1,99 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ + +package org.apache.poi.ss.formula.functions; + +import org.apache.poi.ss.formula.OperationEvaluationContext; +import org.apache.poi.ss.formula.eval.*; + +import java.math.BigInteger; + +/** + * Implementation for Excel HEX2DEC() function.

+ *

+ * Syntax:
HEX2DEC (number)
+ *

+ * Converts a hexadecimal number to decimal. + *

+ * Number is the hexadecimal number you want to convert. Number cannot contain more than 10 characters (40 bits). + * The most significant bit of number is the sign bit. + * The remaining 39 bits are magnitude bits. Negative numbers are represented using two's-complement notation. + * Remark + * If number is not a valid hexadecimal number, HEX2DEC returns the #NUM! error value. + * + * @author cedric dot walter @ gmail dot com + */ +public class Hex2Dec extends Fixed1ArgFunction implements FreeRefFunction { + + public static final FreeRefFunction instance = new Hex2Dec(); + + public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval numberVE) { + String number = OperandResolver.coerceValueToString(numberVE); + if (number.length() > 10) { + return ErrorEval.NUM_ERROR; + } + + String unsigned; + boolean isPositive = false; + boolean isNegative = false; + if (number.length() < 10) { + unsigned = number; + isPositive = true; + } else { + //remove sign bit + unsigned = number.substring(1); + isNegative = + number.startsWith("8") || number.startsWith("9") || + number.startsWith("A") || number.startsWith("B") || + number.startsWith("C") || number.startsWith("D") || + number.startsWith("E") || number.startsWith("F"); + } + + long decimal; + if (isPositive) { + try { + decimal = Integer.parseInt(unsigned, 16); + } catch (NumberFormatException ee) { + // number is not a valid hexadecimal number + return ErrorEval.NUM_ERROR; + } + } else { + if (isNegative) { + BigInteger temp = new BigInteger(unsigned, 16); + BigInteger subtract = BigInteger.ONE.shiftLeft(unsigned.length() * 4); + temp = temp.subtract(subtract); + decimal = temp.longValue(); + } else { + try { + decimal = Integer.parseInt(unsigned, 16); + } catch (NumberFormatException ee) { + // number is not a valid hexadecimal number + return ErrorEval.NUM_ERROR; + } + } + } + + return new NumberEval(decimal); + } + + public ValueEval evaluate(ValueEval[] args, OperationEvaluationContext ec) { + if (args.length != 1) { + return ErrorEval.VALUE_INVALID; + } + return evaluate(ec.getRowIndex(), ec.getColumnIndex(), args[0]); + } +} diff --git a/test-data/spreadsheet/FormulaEvalTestData.xls b/test-data/spreadsheet/FormulaEvalTestData.xls index f7de0a1d778664a14d613ee120f4dbc580032b20..0414f9eac948e32bde163176898d14f7a3a5d406 100644 GIT binary patch delta 43459 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 delta 42980 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