Applied patches from Loiec Lefeavre
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352216 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4c7cc432bc
commit
8c00a3324b
@ -72,6 +72,7 @@ import org.apache.poi.hssf.record.BoolErrRecord;
|
|||||||
import org.apache.poi.hssf.record.ExtendedFormatRecord;
|
import org.apache.poi.hssf.record.ExtendedFormatRecord;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* High level representation of a cell in a row of a spreadsheet.
|
* High level representation of a cell in a row of a spreadsheet.
|
||||||
@ -633,6 +634,19 @@ public class HSSFCell
|
|||||||
setCellValue(HSSFDateUtil.getExcelDate(value));
|
setCellValue(HSSFDateUtil.getExcelDate(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set a date value for the cell. Excel treats dates as numeric so you will need to format the cell as
|
||||||
|
* a date.
|
||||||
|
*
|
||||||
|
* @param value the date value to set this cell to. For formulas we'll set the
|
||||||
|
* precalculated value, for numerics we'll set its value. For othertypes we
|
||||||
|
* will change the cell to a numeric cell and set its value.
|
||||||
|
*/
|
||||||
|
public void setCellValue(Calendar value)
|
||||||
|
{
|
||||||
|
setCellValue(value.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set a string value for the cell.
|
* set a string value for the cell.
|
||||||
*
|
*
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.dev.POIFSViewable;
|
import org.apache.poi.poifs.dev.POIFSViewable;
|
||||||
import org.apache.poi.poifs.property.DocumentProperty;
|
import org.apache.poi.poifs.property.DocumentProperty;
|
||||||
import org.apache.poi.poifs.property.Property;
|
import org.apache.poi.poifs.property.Property;
|
||||||
@ -628,7 +628,7 @@ public class POIFSDocument
|
|||||||
writer.processPOIFSWriterEvent(
|
writer.processPOIFSWriterEvent(
|
||||||
new POIFSWriterEvent(dstream, path, name, size));
|
new POIFSWriterEvent(dstream, path, name, size));
|
||||||
dstream.writeFiller(countBlocks()
|
dstream.writeFiller(countBlocks()
|
||||||
* PoiFSConstants
|
* POIFSConstants
|
||||||
.BIG_BLOCK_SIZE, DocumentBlock
|
.BIG_BLOCK_SIZE, DocumentBlock
|
||||||
.getFillByte());
|
.getFillByte());
|
||||||
}
|
}
|
||||||
@ -654,8 +654,8 @@ public class POIFSDocument
|
|||||||
{
|
{
|
||||||
if (writer != null)
|
if (writer != null)
|
||||||
{
|
{
|
||||||
rval = (size + PoiFSConstants.BIG_BLOCK_SIZE - 1)
|
rval = (size + POIFSConstants.BIG_BLOCK_SIZE - 1)
|
||||||
/ PoiFSConstants.BIG_BLOCK_SIZE;
|
/ POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.dev.POIFSViewable;
|
import org.apache.poi.poifs.dev.POIFSViewable;
|
||||||
import org.apache.poi.poifs.property.DirectoryProperty;
|
import org.apache.poi.poifs.property.DirectoryProperty;
|
||||||
import org.apache.poi.poifs.property.DocumentProperty;
|
import org.apache.poi.poifs.property.DocumentProperty;
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.dev.POIFSViewable;
|
import org.apache.poi.poifs.dev.POIFSViewable;
|
||||||
import org.apache.poi.util.ByteField;
|
import org.apache.poi.util.ByteField;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
@ -124,7 +124,7 @@ public abstract class Property
|
|||||||
|
|
||||||
protected Property()
|
protected Property()
|
||||||
{
|
{
|
||||||
_raw_data = new byte[ PoiFSConstants.PROPERTY_SIZE ];
|
_raw_data = new byte[ POIFSConstants.PROPERTY_SIZE ];
|
||||||
Arrays.fill(_raw_data, _default_fill);
|
Arrays.fill(_raw_data, _default_fill);
|
||||||
_name_size = new ShortField(_name_size_offset);
|
_name_size = new ShortField(_name_size_offset);
|
||||||
_property_type =
|
_property_type =
|
||||||
@ -160,9 +160,9 @@ public abstract class Property
|
|||||||
|
|
||||||
protected Property(final int index, final byte [] array, final int offset)
|
protected Property(final int index, final byte [] array, final int offset)
|
||||||
{
|
{
|
||||||
_raw_data = new byte[ PoiFSConstants.PROPERTY_SIZE ];
|
_raw_data = new byte[ POIFSConstants.PROPERTY_SIZE ];
|
||||||
System.arraycopy(array, offset, _raw_data, 0,
|
System.arraycopy(array, offset, _raw_data, 0,
|
||||||
PoiFSConstants.PROPERTY_SIZE);
|
POIFSConstants.PROPERTY_SIZE);
|
||||||
_name_size = new ShortField(_name_size_offset, _raw_data);
|
_name_size = new ShortField(_name_size_offset, _raw_data);
|
||||||
_property_type =
|
_property_type =
|
||||||
new ByteField(PropertyConstants.PROPERTY_TYPE_OFFSET, _raw_data);
|
new ByteField(PropertyConstants.PROPERTY_TYPE_OFFSET, _raw_data);
|
||||||
|
@ -59,7 +59,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.storage.ListManagedBlock;
|
import org.apache.poi.poifs.storage.ListManagedBlock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,7 +102,7 @@ class PropertyFactory
|
|||||||
{
|
{
|
||||||
byte[] data = blocks[ j ].getData();
|
byte[] data = blocks[ j ].getData();
|
||||||
int property_count = data.length
|
int property_count = data.length
|
||||||
/ PoiFSConstants.PROPERTY_SIZE;
|
/ POIFSConstants.PROPERTY_SIZE;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
for (int k = 0; k < property_count; k++)
|
for (int k = 0; k < property_count; k++)
|
||||||
@ -130,7 +130,7 @@ class PropertyFactory
|
|||||||
properties.add(null);
|
properties.add(null);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
offset += PoiFSConstants.PROPERTY_SIZE;
|
offset += POIFSConstants.PROPERTY_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return properties;
|
return properties;
|
||||||
|
@ -60,7 +60,7 @@ import java.io.OutputStream;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.filesystem.BATManaged;
|
import org.apache.poi.poifs.filesystem.BATManaged;
|
||||||
import org.apache.poi.poifs.storage.BlockWritable;
|
import org.apache.poi.poifs.storage.BlockWritable;
|
||||||
import org.apache.poi.poifs.storage.PropertyBlock;
|
import org.apache.poi.poifs.storage.PropertyBlock;
|
||||||
@ -88,7 +88,7 @@ public class PropertyTable
|
|||||||
|
|
||||||
public PropertyTable()
|
public PropertyTable()
|
||||||
{
|
{
|
||||||
_start_block = PoiFSConstants.END_OF_CHAIN;
|
_start_block = POIFSConstants.END_OF_CHAIN;
|
||||||
_properties = new ArrayList();
|
_properties = new ArrayList();
|
||||||
addProperty(new RootProperty());
|
addProperty(new RootProperty());
|
||||||
_blocks = null;
|
_blocks = null;
|
||||||
@ -110,7 +110,7 @@ public class PropertyTable
|
|||||||
final RawDataBlockList blockList)
|
final RawDataBlockList blockList)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
_start_block = PoiFSConstants.END_OF_CHAIN;
|
_start_block = POIFSConstants.END_OF_CHAIN;
|
||||||
_blocks = null;
|
_blocks = null;
|
||||||
_properties =
|
_properties =
|
||||||
PropertyFactory
|
PropertyFactory
|
||||||
|
@ -59,7 +59,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.storage.SmallDocumentBlock;
|
import org.apache.poi.poifs.storage.SmallDocumentBlock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,7 +83,7 @@ public class RootProperty
|
|||||||
// overrides
|
// overrides
|
||||||
setNodeColor(_NODE_BLACK);
|
setNodeColor(_NODE_BLACK);
|
||||||
setPropertyType(PropertyConstants.ROOT_TYPE);
|
setPropertyType(PropertyConstants.ROOT_TYPE);
|
||||||
setStartBlock(PoiFSConstants.END_OF_CHAIN);
|
setStartBlock(POIFSConstants.END_OF_CHAIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,7 +60,7 @@ import java.io.OutputStream;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
@ -76,7 +76,7 @@ public class BATBlock
|
|||||||
extends BigBlock
|
extends BigBlock
|
||||||
{
|
{
|
||||||
private static final int _entries_per_block =
|
private static final int _entries_per_block =
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE / LittleEndianConsts.INT_SIZE;
|
POIFSConstants.BIG_BLOCK_SIZE / LittleEndianConsts.INT_SIZE;
|
||||||
private static final int _entries_per_xbat_block = _entries_per_block
|
private static final int _entries_per_xbat_block = _entries_per_block
|
||||||
- 1;
|
- 1;
|
||||||
private static final int _xbat_chain_offset =
|
private static final int _xbat_chain_offset =
|
||||||
@ -91,7 +91,7 @@ public class BATBlock
|
|||||||
|
|
||||||
private BATBlock()
|
private BATBlock()
|
||||||
{
|
{
|
||||||
_data = new byte[ PoiFSConstants.BIG_BLOCK_SIZE ];
|
_data = new byte[ POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
Arrays.fill(_data, _default_value);
|
Arrays.fill(_data, _default_value);
|
||||||
_fields = new IntegerField[ _entries_per_block ];
|
_fields = new IntegerField[ _entries_per_block ];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
@ -164,7 +164,7 @@ public class BATBlock
|
|||||||
{
|
{
|
||||||
blocks[ index ].setXBATChain(startBlock + index + 1);
|
blocks[ index ].setXBATChain(startBlock + index + 1);
|
||||||
}
|
}
|
||||||
blocks[ index ].setXBATChain(PoiFSConstants.END_OF_CHAIN);
|
blocks[ index ].setXBATChain(POIFSConstants.END_OF_CHAIN);
|
||||||
}
|
}
|
||||||
return blocks;
|
return blocks;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ import java.io.OutputStream;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntList;
|
import org.apache.poi.util.IntList;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
@ -158,7 +158,7 @@ public class BlockAllocationTableReader
|
|||||||
offset += LittleEndianConsts.INT_SIZE;
|
offset += LittleEndianConsts.INT_SIZE;
|
||||||
}
|
}
|
||||||
chain_index = LittleEndian.getInt(data, chain_index_offset);
|
chain_index = LittleEndian.getInt(data, chain_index_offset);
|
||||||
if (chain_index == PoiFSConstants.END_OF_CHAIN)
|
if (chain_index == POIFSConstants.END_OF_CHAIN)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -222,7 +222,7 @@ public class BlockAllocationTableReader
|
|||||||
List blocks = new ArrayList();
|
List blocks = new ArrayList();
|
||||||
int currentBlock = startBlock;
|
int currentBlock = startBlock;
|
||||||
|
|
||||||
while (currentBlock != PoiFSConstants.END_OF_CHAIN)
|
while (currentBlock != POIFSConstants.END_OF_CHAIN)
|
||||||
{
|
{
|
||||||
blocks.add(blockList.remove(currentBlock));
|
blocks.add(blockList.remove(currentBlock));
|
||||||
currentBlock = _entries.get(currentBlock);
|
currentBlock = _entries.get(currentBlock);
|
||||||
@ -261,7 +261,7 @@ public class BlockAllocationTableReader
|
|||||||
* @param index of the current block
|
* @param index of the current block
|
||||||
*
|
*
|
||||||
* @return index of the next block (may be
|
* @return index of the next block (may be
|
||||||
* PoiFSConstants.END_OF_CHAIN, indicating end of chain
|
* POIFSConstants.END_OF_CHAIN, indicating end of chain
|
||||||
* (duh))
|
* (duh))
|
||||||
*
|
*
|
||||||
* @exception IOException if the current block is unused
|
* @exception IOException if the current block is unused
|
||||||
@ -305,7 +305,7 @@ public class BlockAllocationTableReader
|
|||||||
{
|
{
|
||||||
int entry = LittleEndian.getInt(data, offset);
|
int entry = LittleEndian.getInt(data, offset);
|
||||||
|
|
||||||
if (entry == PoiFSConstants.UNUSED_BLOCK)
|
if (entry == POIFSConstants.UNUSED_BLOCK)
|
||||||
{
|
{
|
||||||
raw_blocks.zap(_entries.size());
|
raw_blocks.zap(_entries.size());
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ import java.io.OutputStream;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.filesystem.BATManaged;
|
import org.apache.poi.poifs.filesystem.BATManaged;
|
||||||
import org.apache.poi.util.IntList;
|
import org.apache.poi.util.IntList;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
@ -95,7 +95,7 @@ public class BlockAllocationTableWriter
|
|||||||
|
|
||||||
public BlockAllocationTableWriter()
|
public BlockAllocationTableWriter()
|
||||||
{
|
{
|
||||||
_start_block = PoiFSConstants.END_OF_CHAIN;
|
_start_block = POIFSConstants.END_OF_CHAIN;
|
||||||
_entries = new IntList();
|
_entries = new IntList();
|
||||||
_blocks = new BATBlock[ 0 ];
|
_blocks = new BATBlock[ 0 ];
|
||||||
}
|
}
|
||||||
@ -162,7 +162,7 @@ public class BlockAllocationTableWriter
|
|||||||
{
|
{
|
||||||
_entries.add(index++);
|
_entries.add(index++);
|
||||||
}
|
}
|
||||||
_entries.add(PoiFSConstants.END_OF_CHAIN);
|
_entries.add(POIFSConstants.END_OF_CHAIN);
|
||||||
}
|
}
|
||||||
return startBlock;
|
return startBlock;
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ import java.io.OutputStream;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
@ -118,7 +118,7 @@ public class DocumentBlock
|
|||||||
|
|
||||||
private DocumentBlock()
|
private DocumentBlock()
|
||||||
{
|
{
|
||||||
_data = new byte[ PoiFSConstants.BIG_BLOCK_SIZE ];
|
_data = new byte[ POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
Arrays.fill(_data, _default_value);
|
Arrays.fill(_data, _default_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ public class DocumentBlock
|
|||||||
|
|
||||||
public boolean partiallyRead()
|
public boolean partiallyRead()
|
||||||
{
|
{
|
||||||
return _bytes_read != PoiFSConstants.BIG_BLOCK_SIZE;
|
return _bytes_read != POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -168,7 +168,7 @@ public class DocumentBlock
|
|||||||
final int size)
|
final int size)
|
||||||
{
|
{
|
||||||
DocumentBlock[] rval =
|
DocumentBlock[] rval =
|
||||||
new DocumentBlock[ (size + PoiFSConstants.BIG_BLOCK_SIZE - 1) / PoiFSConstants.BIG_BLOCK_SIZE ];
|
new DocumentBlock[ (size + POIFSConstants.BIG_BLOCK_SIZE - 1) / POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
for (int k = 0; k < rval.length; k++)
|
for (int k = 0; k < rval.length; k++)
|
||||||
@ -176,14 +176,14 @@ public class DocumentBlock
|
|||||||
rval[ k ] = new DocumentBlock();
|
rval[ k ] = new DocumentBlock();
|
||||||
if (offset < array.length)
|
if (offset < array.length)
|
||||||
{
|
{
|
||||||
int length = Math.min(PoiFSConstants.BIG_BLOCK_SIZE,
|
int length = Math.min(POIFSConstants.BIG_BLOCK_SIZE,
|
||||||
array.length - offset);
|
array.length - offset);
|
||||||
|
|
||||||
System.arraycopy(array, offset, rval[ k ]._data, 0, length);
|
System.arraycopy(array, offset, rval[ k ]._data, 0, length);
|
||||||
if (length != PoiFSConstants.BIG_BLOCK_SIZE)
|
if (length != POIFSConstants.BIG_BLOCK_SIZE)
|
||||||
{
|
{
|
||||||
Arrays.fill(rval[ k ]._data, length,
|
Arrays.fill(rval[ k ]._data, length,
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE,
|
POIFSConstants.BIG_BLOCK_SIZE,
|
||||||
_default_value);
|
_default_value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,7 +191,7 @@ public class DocumentBlock
|
|||||||
{
|
{
|
||||||
Arrays.fill(rval[ k ]._data, _default_value);
|
Arrays.fill(rval[ k ]._data, _default_value);
|
||||||
}
|
}
|
||||||
offset += PoiFSConstants.BIG_BLOCK_SIZE;
|
offset += POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
}
|
}
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
@ -207,10 +207,10 @@ public class DocumentBlock
|
|||||||
public static void read(final DocumentBlock [] blocks,
|
public static void read(final DocumentBlock [] blocks,
|
||||||
final byte [] buffer, final int offset)
|
final byte [] buffer, final int offset)
|
||||||
{
|
{
|
||||||
int firstBlockIndex = offset / PoiFSConstants.BIG_BLOCK_SIZE;
|
int firstBlockIndex = offset / POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
int firstBlockOffset = offset % PoiFSConstants.BIG_BLOCK_SIZE;
|
int firstBlockOffset = offset % POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
int lastBlockIndex = (offset + buffer.length - 1)
|
int lastBlockIndex = (offset + buffer.length - 1)
|
||||||
/ PoiFSConstants.BIG_BLOCK_SIZE;
|
/ POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
|
|
||||||
if (firstBlockIndex == lastBlockIndex)
|
if (firstBlockIndex == lastBlockIndex)
|
||||||
{
|
{
|
||||||
@ -223,14 +223,14 @@ public class DocumentBlock
|
|||||||
|
|
||||||
System.arraycopy(blocks[ firstBlockIndex ]._data,
|
System.arraycopy(blocks[ firstBlockIndex ]._data,
|
||||||
firstBlockOffset, buffer, buffer_offset,
|
firstBlockOffset, buffer, buffer_offset,
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE
|
POIFSConstants.BIG_BLOCK_SIZE
|
||||||
- firstBlockOffset);
|
- firstBlockOffset);
|
||||||
buffer_offset += PoiFSConstants.BIG_BLOCK_SIZE - firstBlockOffset;
|
buffer_offset += POIFSConstants.BIG_BLOCK_SIZE - firstBlockOffset;
|
||||||
for (int j = firstBlockIndex + 1; j < lastBlockIndex; j++)
|
for (int j = firstBlockIndex + 1; j < lastBlockIndex; j++)
|
||||||
{
|
{
|
||||||
System.arraycopy(blocks[ j ]._data, 0, buffer, buffer_offset,
|
System.arraycopy(blocks[ j ]._data, 0, buffer, buffer_offset,
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE);
|
POIFSConstants.BIG_BLOCK_SIZE);
|
||||||
buffer_offset += PoiFSConstants.BIG_BLOCK_SIZE;
|
buffer_offset += POIFSConstants.BIG_BLOCK_SIZE;
|
||||||
}
|
}
|
||||||
System.arraycopy(blocks[ lastBlockIndex ]._data, 0, buffer,
|
System.arraycopy(blocks[ lastBlockIndex ]._data, 0, buffer,
|
||||||
buffer_offset, buffer.length - buffer_offset);
|
buffer_offset, buffer.length - buffer_offset);
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.poifs.storage;
|
package org.apache.poi.poifs.storage;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
@ -73,7 +73,7 @@ public interface HeaderBlockConstants
|
|||||||
public static final long _signature = 0xE11AB1A1E011CFD0L;
|
public static final long _signature = 0xE11AB1A1E011CFD0L;
|
||||||
public static final int _bat_array_offset = 0x4c;
|
public static final int _bat_array_offset = 0x4c;
|
||||||
public static final int _max_bats_in_header =
|
public static final int _max_bats_in_header =
|
||||||
(PoiFSConstants.BIG_BLOCK_SIZE - _bat_array_offset)
|
(POIFSConstants.BIG_BLOCK_SIZE - _bat_array_offset)
|
||||||
/ LittleEndianConsts.INT_SIZE;
|
/ LittleEndianConsts.INT_SIZE;
|
||||||
|
|
||||||
// useful offsets
|
// useful offsets
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
@ -103,17 +103,17 @@ public class HeaderBlockReader
|
|||||||
public HeaderBlockReader(final InputStream stream)
|
public HeaderBlockReader(final InputStream stream)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
_data = new byte[ PoiFSConstants.BIG_BLOCK_SIZE ];
|
_data = new byte[ POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
int byte_count = stream.read(_data);
|
int byte_count = stream.read(_data);
|
||||||
|
|
||||||
if (byte_count != PoiFSConstants.BIG_BLOCK_SIZE)
|
if (byte_count != POIFSConstants.BIG_BLOCK_SIZE)
|
||||||
{
|
{
|
||||||
String type = " byte" + ((byte_count == 1) ? ("")
|
String type = " byte" + ((byte_count == 1) ? ("")
|
||||||
: ("s"));
|
: ("s"));
|
||||||
|
|
||||||
throw new IOException("Unable to read entire header; "
|
throw new IOException("Unable to read entire header; "
|
||||||
+ byte_count + type + " read; expected "
|
+ byte_count + type + " read; expected "
|
||||||
+ PoiFSConstants.BIG_BLOCK_SIZE + " bytes");
|
+ POIFSConstants.BIG_BLOCK_SIZE + " bytes");
|
||||||
}
|
}
|
||||||
|
|
||||||
// verify signature
|
// verify signature
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
import org.apache.poi.util.LongField;
|
import org.apache.poi.util.LongField;
|
||||||
@ -99,7 +99,7 @@ public class HeaderBlockWriter
|
|||||||
|
|
||||||
public HeaderBlockWriter()
|
public HeaderBlockWriter()
|
||||||
{
|
{
|
||||||
_data = new byte[ PoiFSConstants.BIG_BLOCK_SIZE ];
|
_data = new byte[ POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
Arrays.fill(_data, _default_value);
|
Arrays.fill(_data, _default_value);
|
||||||
new LongField(_signature_offset, _signature, _data);
|
new LongField(_signature_offset, _signature, _data);
|
||||||
new IntegerField(0x08, 0, _data);
|
new IntegerField(0x08, 0, _data);
|
||||||
@ -115,15 +115,15 @@ public class HeaderBlockWriter
|
|||||||
new IntegerField(0x28, 0, _data);
|
new IntegerField(0x28, 0, _data);
|
||||||
_bat_count = new IntegerField(_bat_count_offset, 0, _data);
|
_bat_count = new IntegerField(_bat_count_offset, 0, _data);
|
||||||
_property_start = new IntegerField(_property_start_offset,
|
_property_start = new IntegerField(_property_start_offset,
|
||||||
PoiFSConstants.END_OF_CHAIN,
|
POIFSConstants.END_OF_CHAIN,
|
||||||
_data);
|
_data);
|
||||||
new IntegerField(0x34, 0, _data);
|
new IntegerField(0x34, 0, _data);
|
||||||
new IntegerField(0x38, 0x1000, _data);
|
new IntegerField(0x38, 0x1000, _data);
|
||||||
_sbat_start = new IntegerField(_sbat_start_offset,
|
_sbat_start = new IntegerField(_sbat_start_offset,
|
||||||
PoiFSConstants.END_OF_CHAIN, _data);
|
POIFSConstants.END_OF_CHAIN, _data);
|
||||||
new IntegerField(0x40, 1, _data);
|
new IntegerField(0x40, 1, _data);
|
||||||
_xbat_start = new IntegerField(_xbat_start_offset,
|
_xbat_start = new IntegerField(_xbat_start_offset,
|
||||||
PoiFSConstants.END_OF_CHAIN, _data);
|
POIFSConstants.END_OF_CHAIN, _data);
|
||||||
_xbat_count = new IntegerField(_xbat_count_offset, 0, _data);
|
_xbat_count = new IntegerField(_xbat_count_offset, 0, _data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ public class HeaderBlockWriter
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
rvalue = BATBlock.createXBATBlocks(new int[ 0 ], 0);
|
rvalue = BATBlock.createXBATBlocks(new int[ 0 ], 0);
|
||||||
_xbat_start.set(PoiFSConstants.END_OF_CHAIN, _data);
|
_xbat_start.set(POIFSConstants.END_OF_CHAIN, _data);
|
||||||
}
|
}
|
||||||
_xbat_count.set(rvalue.length, _data);
|
_xbat_count.set(rvalue.length, _data);
|
||||||
return rvalue;
|
return rvalue;
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.poifs.property.Property;
|
import org.apache.poi.poifs.property.Property;
|
||||||
import org.apache.poi.util.IntegerField;
|
import org.apache.poi.util.IntegerField;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
@ -75,7 +75,7 @@ public class PropertyBlock
|
|||||||
extends BigBlock
|
extends BigBlock
|
||||||
{
|
{
|
||||||
private static final int _properties_per_block =
|
private static final int _properties_per_block =
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE / PoiFSConstants.PROPERTY_SIZE;
|
POIFSConstants.BIG_BLOCK_SIZE / POIFSConstants.PROPERTY_SIZE;
|
||||||
private Property[] _properties;
|
private Property[] _properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.poifs.storage;
|
package org.apache.poi.poifs.storage;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
@ -83,21 +83,21 @@ public class RawDataBlock
|
|||||||
public RawDataBlock(final InputStream stream)
|
public RawDataBlock(final InputStream stream)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
_data = new byte[ PoiFSConstants.BIG_BLOCK_SIZE ];
|
_data = new byte[ POIFSConstants.BIG_BLOCK_SIZE ];
|
||||||
int count = stream.read(_data);
|
int count = stream.read(_data);
|
||||||
|
|
||||||
if (count == -1)
|
if (count == -1)
|
||||||
{
|
{
|
||||||
_eof = true;
|
_eof = true;
|
||||||
}
|
}
|
||||||
else if (count != PoiFSConstants.BIG_BLOCK_SIZE)
|
else if (count != POIFSConstants.BIG_BLOCK_SIZE)
|
||||||
{
|
{
|
||||||
String type = " byte" + ((count == 1) ? ("")
|
String type = " byte" + ((count == 1) ? ("")
|
||||||
: ("s"));
|
: ("s"));
|
||||||
|
|
||||||
throw new IOException("Unable to read entire block; " + count
|
throw new IOException("Unable to read entire block; " + count
|
||||||
+ type + " read; expected "
|
+ type + " read; expected "
|
||||||
+ PoiFSConstants.BIG_BLOCK_SIZE + " bytes");
|
+ POIFSConstants.BIG_BLOCK_SIZE + " bytes");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ import java.io.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage for documents that are too small to use regular
|
* Storage for documents that are too small to use regular
|
||||||
@ -75,7 +75,7 @@ public class SmallDocumentBlock
|
|||||||
private static final byte _default_fill = ( byte ) 0xff;
|
private static final byte _default_fill = ( byte ) 0xff;
|
||||||
private static final int _block_size = 64;
|
private static final int _block_size = 64;
|
||||||
private static final int _blocks_per_big_block =
|
private static final int _blocks_per_big_block =
|
||||||
PoiFSConstants.BIG_BLOCK_SIZE / _block_size;
|
POIFSConstants.BIG_BLOCK_SIZE / _block_size;
|
||||||
|
|
||||||
private SmallDocumentBlock(final byte [] data, final int index)
|
private SmallDocumentBlock(final byte [] data, final int index)
|
||||||
{
|
{
|
||||||
|
@ -135,7 +135,7 @@ public class TestCellStyle
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that is creating a file with a date works correctly.
|
* Tests that is creating a file with a date or an calendar works correctly.
|
||||||
*/
|
*/
|
||||||
public void testDataStyle()
|
public void testDataStyle()
|
||||||
throws Exception
|
throws Exception
|
||||||
@ -147,10 +147,21 @@ public class TestCellStyle
|
|||||||
HSSFSheet s = wb.createSheet();
|
HSSFSheet s = wb.createSheet();
|
||||||
HSSFCellStyle cs = wb.createCellStyle();
|
HSSFCellStyle cs = wb.createCellStyle();
|
||||||
HSSFRow row = s.createRow((short)0);
|
HSSFRow row = s.createRow((short)0);
|
||||||
|
|
||||||
|
// with Date:
|
||||||
HSSFCell cell = row.createCell((short)1);
|
HSSFCell cell = row.createCell((short)1);
|
||||||
cs.setDataFormat(HSSFDataFormat.getFormat("m/d/yy"));
|
cs.setDataFormat(HSSFDataFormat.getFormat("m/d/yy"));
|
||||||
cell.setCellStyle(cs);
|
cell.setCellStyle(cs);
|
||||||
cell.setCellValue(new Date());
|
cell.setCellValue(new Date());
|
||||||
|
|
||||||
|
// with Calendar:
|
||||||
|
cell = row.createCell((short)2);
|
||||||
|
cs.setDataFormat(HSSFDataFormat.getFormat("m/d/yy"));
|
||||||
|
cell.setCellStyle(cs);
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(new Date());
|
||||||
|
cell.setCellValue(cal);
|
||||||
|
|
||||||
wb.write(out);
|
wb.write(out);
|
||||||
out.close();
|
out.close();
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import junit.framework.*;
|
import junit.framework.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to test DirectoryProperty functionality
|
* Class to test DirectoryProperty functionality
|
||||||
|
@ -61,7 +61,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import junit.framework.*;
|
import junit.framework.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to test RootProperty functionality
|
* Class to test RootProperty functionality
|
||||||
@ -124,7 +124,7 @@ public class TestRootProperty
|
|||||||
{
|
{
|
||||||
_testblock[ index ] = ( byte ) 0;
|
_testblock[ index ] = ( byte ) 0;
|
||||||
}
|
}
|
||||||
_testblock[ index++ ] = ( byte ) PoiFSConstants.END_OF_CHAIN;
|
_testblock[ index++ ] = ( byte ) POIFSConstants.END_OF_CHAIN;
|
||||||
for (; index < 0x78; index++)
|
for (; index < 0x78; index++)
|
||||||
{
|
{
|
||||||
_testblock[ index ] = ( byte ) 0xff;
|
_testblock[ index ] = ( byte ) 0xff;
|
||||||
|
@ -61,7 +61,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import junit.framework.*;
|
import junit.framework.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
|
|
||||||
@ -1254,7 +1254,7 @@ public class TestBlockAllocationTableReader
|
|||||||
else if (i % 256 == 255)
|
else if (i % 256 == 255)
|
||||||
{
|
{
|
||||||
assertEquals("Verify end of chain for block " + i,
|
assertEquals("Verify end of chain for block " + i,
|
||||||
PoiFSConstants.END_OF_CHAIN,
|
POIFSConstants.END_OF_CHAIN,
|
||||||
table.getNextBlockIndex(i));
|
table.getNextBlockIndex(i));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -61,7 +61,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import junit.framework.*;
|
import junit.framework.*;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.PoiFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.LittleEndianConsts;
|
import org.apache.poi.util.LittleEndianConsts;
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ public class TestBlockAllocationTableWriter
|
|||||||
offset += LittleEndianConsts.INT_SIZE;
|
offset += LittleEndianConsts.INT_SIZE;
|
||||||
}
|
}
|
||||||
LittleEndian.putInt(expected, offset,
|
LittleEndian.putInt(expected, offset,
|
||||||
PoiFSConstants.END_OF_CHAIN);
|
POIFSConstants.END_OF_CHAIN);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
block_index++;
|
block_index++;
|
||||||
}
|
}
|
||||||
@ -197,7 +197,7 @@ public class TestBlockAllocationTableWriter
|
|||||||
// add BAT block indices
|
// add BAT block indices
|
||||||
LittleEndian.putInt(expected, offset, block_index++);
|
LittleEndian.putInt(expected, offset, block_index++);
|
||||||
offset += LittleEndianConsts.INT_SIZE;
|
offset += LittleEndianConsts.INT_SIZE;
|
||||||
LittleEndian.putInt(expected, offset, PoiFSConstants.END_OF_CHAIN);
|
LittleEndian.putInt(expected, offset, POIFSConstants.END_OF_CHAIN);
|
||||||
for (int k = 0; k < expected.length; k++)
|
for (int k = 0; k < expected.length; k++)
|
||||||
{
|
{
|
||||||
assertEquals("At offset " + k, expected[ k ], output[ k ]);
|
assertEquals("At offset " + k, expected[ k ], output[ k ]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user