Bläddra i källkod

bug 61286/bug 61287 -- allow WriteProtectRecord to have 2 bytes, and allow for HeaderFooter to be empty.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1801966 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_17_FINAL
Tim Allison 6 år sedan
förälder
incheckning
5a9d05487d

+ 7
- 0
src/java/org/apache/poi/hssf/record/HeaderFooterBase.java Visa fil

protected HeaderFooterBase(RecordInputStream in) { protected HeaderFooterBase(RecordInputStream in) {
if (in.remaining() > 0) { if (in.remaining() > 0) {
int field_1_footer_len = in.readShort(); int field_1_footer_len = in.readShort();
//61287 -- if the footer_len == 0, there may not be a multibyte flag
if (field_1_footer_len == 0) {
field_3_text = "";
if (in.remaining() == 0) {
return;
}
}
field_2_hasMultibyte = in.readByte() != 0x00; field_2_hasMultibyte = in.readByte() != 0x00;


if (field_2_hasMultibyte) { if (field_2_hasMultibyte) {

+ 3
- 0
src/java/org/apache/poi/hssf/record/WriteProtectRecord.java Visa fil

*/ */
public WriteProtectRecord(RecordInputStream in) public WriteProtectRecord(RecordInputStream in)
{ {
if (in.remaining() == 2) {
in.readShort();
}
} }


public String toString() public String toString()

+ 11
- 2
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Visa fil

import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.util.Locale; import java.util.Locale;
import java.util.TimeZone; import java.util.TimeZone;


import javax.imageio.ImageIO;

import org.apache.poi.EncryptedDocumentException; import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.HSSFTestDataSamples;
wb.getCreationHelper().createFormulaEvaluator().evaluateAll(); wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
wb.close(); wb.close();
} }

@Test
public void test61287() throws IOException {
final Workbook wb = HSSFTestDataSamples.openSampleWorkbook("61287.xls");
ExcelExtractor ex = new ExcelExtractor((HSSFWorkbook)wb);
String text = ex.getText();
assertContains(text, "资产负债表");
wb.close();
}

} }

Binär
test-data/spreadsheet/61287.xls Visa fil


Laddar…
Avbryt
Spara