git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1843553 13f79535-47bb-0310-9956-ffa450edef68tags/REL_4_0_1
} | } | ||||
private double rkNumber(byte[] data, int offset) { | private double rkNumber(byte[] data, int offset) { | ||||
//see 2.5.122 for this abomination | |||||
//see 2.5.122 | |||||
byte b0 = data[offset]; | byte b0 = data[offset]; | ||||
String s = Integer.toString(b0, 2); | |||||
boolean numDivBy100 = ((b0 & 1) == 1); // else as is | boolean numDivBy100 = ((b0 & 1) == 1); // else as is | ||||
boolean floatingPoint = ((b0 >> 1 & 1) == 0); // else signed integer | boolean floatingPoint = ((b0 >> 1 & 1) == 0); // else signed integer | ||||
if (floatingPoint) { | if (floatingPoint) { | ||||
d = LittleEndian.getDouble(rkBuffer); | d = LittleEndian.getDouble(rkBuffer); | ||||
} else { | } else { | ||||
d = LittleEndian.getInt(rkBuffer); | |||||
int rawInt = LittleEndian.getInt(rkBuffer, 4); | |||||
d = rawInt >> 2;//divide by 4/shift bits coz 30 bit int, not 32 | |||||
} | } | ||||
d = (numDivBy100) ? d/100 : d; | d = (numDivBy100) ? d/100 : d; | ||||
return d; | return d; |
import org.apache.poi.xssf.XSSFTestDataSamples; | import org.apache.poi.xssf.XSSFTestDataSamples; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import java.io.BufferedReader; | |||||
import java.nio.charset.StandardCharsets; | |||||
import java.nio.file.Files; | |||||
/** | /** | ||||
* Tests for {@link XSSFBEventBasedExcelExtractor} | * Tests for {@link XSSFBEventBasedExcelExtractor} | ||||
*/ | */ | ||||
"This is an example spreadsheet created with Microsoft Excel 2007 Beta 2."); | "This is an example spreadsheet created with Microsoft Excel 2007 Beta 2."); | ||||
} | } | ||||
@Test | |||||
public void test62815() throws Exception { | |||||
//test file based on http://oss.sheetjs.com/test_files/RkNumber.xlsb | |||||
XSSFEventBasedExcelExtractor extractor = getExtractor("62815.xlsb"); | |||||
extractor.setIncludeCellComments(true); | |||||
String[] rows = extractor.getText().split("[\r\n]+"); | |||||
assertEquals(283, rows.length); | |||||
BufferedReader reader = Files.newBufferedReader(XSSFTestDataSamples.getSampleFile("62815.xlsb.txt").toPath(), | |||||
StandardCharsets.UTF_8); | |||||
String line = reader.readLine(); | |||||
for (int i = 0; i < rows.length; i++) { | |||||
assertEquals(line, rows[i]); | |||||
line = reader.readLine(); | |||||
while (line != null && line.startsWith("#")) { | |||||
line = reader.readLine(); | |||||
} | |||||
} | |||||
} | |||||
} | } |
RkNumber | |||||
10000000 | |||||
1200455 | |||||
0.01 | |||||
12004.55 | |||||
-10000000 | |||||
-1200455 | |||||
-0.01 | |||||
-12004.55 | |||||
10268609 | |||||
1071427521 | |||||
-1071427521 | |||||
273214017855 | |||||
69942788570880 | |||||
17905353874145300 | |||||
17835411085574400 | |||||
273214017855 | |||||
273214017856 | |||||
273214017857 | |||||
273214017858 | |||||
273214017859 | |||||
273214017860 | |||||
273214017861 | |||||
273214017862 | |||||
273214017863 | |||||
273214017864 | |||||
273214017865 | |||||
273214017866 | |||||
273214017867 | |||||
273214017868 | |||||
273214017869 | |||||
273214017870 | |||||
273214017871 | |||||
273214017872 | |||||
273214017873 | |||||
273214017874 | |||||
273214017875 | |||||
273214017876 | |||||
273214017877 | |||||
273214017878 | |||||
273214017879 | |||||
273214017880 | |||||
273214017881 | |||||
273214017882 | |||||
273214017883 | |||||
273214017884 | |||||
273214017885 | |||||
273214017886 | |||||
273214017887 | |||||
273214017888 | |||||
273214017889 | |||||
273214017890 | |||||
273214017891 | |||||
273214017892 | |||||
273214017893 | |||||
273214017894 | |||||
273214017895 | |||||
273214017896 | |||||
273214017897 | |||||
273214017898 | |||||
273214017899 | |||||
273214017900 | |||||
273214017901 | |||||
273214017902 | |||||
273214017903 | |||||
273214017904 | |||||
273214017905 | |||||
273214017906 | |||||
273214017907 | |||||
273214017908 | |||||
273214017909 | |||||
273214017910 | |||||
273214017911 | |||||
273214017912 | |||||
273214017913 | |||||
273214017914 | |||||
273214017915 | |||||
273214017916 | |||||
273214017917 | |||||
273214017918 | |||||
273214017919 | |||||
273214017920 | |||||
273214017921 | |||||
273214017922 | |||||
273214017923 | |||||
273214017924 | |||||
273214017925 | |||||
273214017926 | |||||
273214017927 | |||||
273214017928 | |||||
273214017929 | |||||
273214017930 | |||||
273214017931 | |||||
273214017932 | |||||
273214017933 | |||||
273214017934 | |||||
273214017935 | |||||
273214017936 | |||||
273214017937 | |||||
273214017938 | |||||
273214017939 | |||||
273214017940 | |||||
273214017941 | |||||
273214017942 | |||||
273214017943 | |||||
273214017944 | |||||
273214017945 | |||||
273214017946 | |||||
273214017947 | |||||
273214017948 | |||||
273214017949 | |||||
273214017950 | |||||
273214017951 | |||||
273214017952 | |||||
273214017953 | |||||
273214017954 | |||||
273214017955 | |||||
273214017956 | |||||
273214017957 | |||||
273214017958 | |||||
273214017959 | |||||
273214017960 | |||||
273214017961 | |||||
273214017962 | |||||
273214017963 | |||||
273214017964 | |||||
273214017965 | |||||
273214017966 | |||||
273214017967 | |||||
273214017968 | |||||
273214017969 | |||||
273214017970 | |||||
273214017971 | |||||
273214017972 | |||||
273214017973 | |||||
273214017974 | |||||
273214017975 | |||||
273214017976 | |||||
273214017977 | |||||
273214017978 | |||||
273214017979 | |||||
273214017980 | |||||
273214017981 | |||||
273214017982 | |||||
273214017983 | |||||
273214017984 | |||||
273214017985 | |||||
273214017986 | |||||
273214017987 | |||||
273214017988 | |||||
273214017989 | |||||
273214017990 | |||||
273214017991 | |||||
273214017992 | |||||
273214017993 | |||||
273214017994 | |||||
273214017995 | |||||
273214017996 | |||||
273214017997 | |||||
273214017998 | |||||
273214017999 | |||||
273214018000 | |||||
273214018001 | |||||
273214018002 | |||||
273214018003 | |||||
273214018004 | |||||
273214018005 | |||||
273214018006 | |||||
273214018007 | |||||
273214018008 | |||||
273214018009 | |||||
273214018010 | |||||
273214018011 | |||||
273214018012 | |||||
273214018013 | |||||
273214018014 | |||||
273214018015 | |||||
273214018016 | |||||
273214018017 | |||||
273214018018 | |||||
273214018019 | |||||
273214018020 | |||||
273214018021 | |||||
273214018022 | |||||
273214018023 | |||||
273214018024 | |||||
273214018025 | |||||
273214018026 | |||||
273214018027 | |||||
273214018028 | |||||
273214018029 | |||||
273214018030 | |||||
273214018031 | |||||
273214018032 | |||||
273214018033 | |||||
273214018034 | |||||
273214018035 | |||||
273214018036 | |||||
273214018037 | |||||
273214018038 | |||||
273214018039 | |||||
273214018040 | |||||
273214018041 | |||||
273214018042 | |||||
273214018043 | |||||
273214018044 | |||||
273214018045 | |||||
273214018046 | |||||
273214018047 | |||||
273214018048 | |||||
273214018049 | |||||
273214018050 | |||||
273214018051 | |||||
273214018052 | |||||
273214018053 | |||||
273214018054 | |||||
273214018055 | |||||
273214018056 | |||||
273214018057 | |||||
273214018058 | |||||
273214018059 | |||||
273214018060 | |||||
273214018061 | |||||
273214018062 | |||||
273214018063 | |||||
273214018064 | |||||
273214018065 | |||||
273214018066 | |||||
273214018067 | |||||
273214018068 | |||||
273214018069 | |||||
273214018070 | |||||
273214018071 | |||||
273214018072 | |||||
273214018073 | |||||
273214018074 | |||||
273214018075 | |||||
273214018076 | |||||
273214018077 | |||||
273214018078 | |||||
273214018079 | |||||
273214018080 | |||||
273214018081 | |||||
273214018082 | |||||
273214018083 | |||||
273214018084 | |||||
273214018085 | |||||
273214018086 | |||||
273214018087 | |||||
273214018088 | |||||
273214018089 | |||||
273214018090 | |||||
273214018091 | |||||
273214018092 | |||||
273214018093 | |||||
273214018094 | |||||
273214018095 | |||||
273214018096 | |||||
273214018097 | |||||
273214018098 | |||||
273214018099 | |||||
273214018100 | |||||
273214018101 | |||||
273214018102 | |||||
273214018103 | |||||
273214018104 | |||||
273214018105 | |||||
273214018106 | |||||
273214018107 | |||||
273214018108 | |||||
273214018109 | |||||
273214018110 | |||||
273214018111 | |||||
273214018112 | |||||
273214018113 | |||||
273214018114 | |||||
273214018115 | |||||
910713.3937166670 | |||||
3.03571131238889 | |||||
0.000010119037707963000 | |||||
3.37E-11 | |||||
1.12E-16 | |||||
#excel doesn't display ...863, this was manually altered to get the test to work | |||||
3.7477917436899863E-22 |