Print out current version of java before building to allow to see in build output if we use a supported Java VM version
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1629644 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
30d72983d1
commit
d254ec8ec1
@ -362,6 +362,8 @@ under the License.
|
|||||||
<mkdir dir="${examples.output.dir}"/>
|
<mkdir dir="${examples.output.dir}"/>
|
||||||
<mkdir dir="${dist.dir}"/>
|
<mkdir dir="${dist.dir}"/>
|
||||||
<mkdir dir="${build.site}"/>
|
<mkdir dir="${build.site}"/>
|
||||||
|
|
||||||
|
<echo message="Using Java: ${java.version}/${java.runtime.version}/${java.vm.version}/${java.vm.name} from ${java.vm.vendor} on ${os.name}: ${os.version}" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="clean">
|
<target name="clean">
|
||||||
|
@ -17,10 +17,10 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.record;
|
package org.apache.poi.hssf.record;
|
||||||
|
|
||||||
import org.apache.poi.ss.formula.ptg.Ptg;
|
|
||||||
import org.apache.poi.ss.formula.eval.ErrorEval;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFCell;
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
||||||
import org.apache.poi.ss.formula.Formula;
|
import org.apache.poi.ss.formula.Formula;
|
||||||
|
import org.apache.poi.ss.formula.eval.ErrorEval;
|
||||||
|
import org.apache.poi.ss.formula.ptg.Ptg;
|
||||||
import org.apache.poi.util.BitField;
|
import org.apache.poi.util.BitField;
|
||||||
import org.apache.poi.util.BitFieldFactory;
|
import org.apache.poi.util.BitFieldFactory;
|
||||||
import org.apache.poi.util.HexDump;
|
import org.apache.poi.util.HexDump;
|
||||||
@ -136,6 +136,7 @@ public final class FormulaRecord extends CellRecord {
|
|||||||
};
|
};
|
||||||
return new SpecialCachedValue(vd);
|
return new SpecialCachedValue(vd);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuffer sb = new StringBuffer(64);
|
StringBuffer sb = new StringBuffer(64);
|
||||||
sb.append(getClass().getName());
|
sb.append(getClass().getName());
|
||||||
@ -319,6 +320,7 @@ public final class FormulaRecord extends CellRecord {
|
|||||||
field_8_parsed_expr = Formula.create(ptgs);
|
field_8_parsed_expr = Formula.create(ptgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public short getSid() {
|
public short getSid() {
|
||||||
return sid;
|
return sid;
|
||||||
}
|
}
|
||||||
@ -372,6 +374,7 @@ public final class FormulaRecord extends CellRecord {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Object clone() {
|
public Object clone() {
|
||||||
FormulaRecord rec = new FormulaRecord();
|
FormulaRecord rec = new FormulaRecord();
|
||||||
copyBaseFields(rec);
|
copyBaseFields(rec);
|
||||||
|
@ -94,10 +94,12 @@ public final class RKRecord extends CellRecord {
|
|||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public short getSid() {
|
public short getSid() {
|
||||||
return sid;
|
return sid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Object clone() {
|
public Object clone() {
|
||||||
RKRecord rec = new RKRecord();
|
RKRecord rec = new RKRecord();
|
||||||
copyBaseFields(rec);
|
copyBaseFields(rec);
|
||||||
|
@ -1,794 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
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.hssf.usermodel;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.awt.font.FontRenderContext;
|
|
||||||
import java.awt.font.GlyphVector;
|
|
||||||
import java.awt.geom.AffineTransform;
|
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.awt.image.BufferedImageOp;
|
|
||||||
import java.awt.image.ImageObserver;
|
|
||||||
import java.awt.image.RenderedImage;
|
|
||||||
import java.awt.image.renderable.RenderableImage;
|
|
||||||
import java.text.AttributedCharacterIterator;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class DummyGraphics2d
|
|
||||||
extends Graphics2D
|
|
||||||
{
|
|
||||||
BufferedImage img;
|
|
||||||
private Graphics2D g2D;
|
|
||||||
|
|
||||||
public DummyGraphics2d()
|
|
||||||
{
|
|
||||||
img = new BufferedImage(1000, 1000, 2);
|
|
||||||
g2D = (Graphics2D)img.getGraphics();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addRenderingHints(Map hints)
|
|
||||||
{
|
|
||||||
System.out.println( "addRenderingHinds(Map):" );
|
|
||||||
System.out.println( " hints = " + hints );
|
|
||||||
g2D.addRenderingHints( hints );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clip(Shape s)
|
|
||||||
{
|
|
||||||
System.out.println( "clip(Shape):" );
|
|
||||||
System.out.println( " s = " + s );
|
|
||||||
g2D.clip( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void draw(Shape s)
|
|
||||||
{
|
|
||||||
System.out.println( "draw(Shape):" );
|
|
||||||
System.out.println( "s = " + s );
|
|
||||||
g2D.draw( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawGlyphVector(GlyphVector g, float x, float y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawGlyphVector(GlyphVector, float, float):" );
|
|
||||||
System.out.println( "g = " + g );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawGlyphVector( g, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawImage(BufferedImage img,
|
|
||||||
BufferedImageOp op,
|
|
||||||
int x,
|
|
||||||
int y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(BufferedImage, BufferedImageOp, x, y):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "op = " + op );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawImage( img, op, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img,
|
|
||||||
AffineTransform xform,
|
|
||||||
ImageObserver obs)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,AfflineTransform,ImageObserver):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "xform = " + xform );
|
|
||||||
System.out.println( "obs = " + obs );
|
|
||||||
return g2D.drawImage( img, xform, obs );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawRenderableImage(RenderableImage img,
|
|
||||||
AffineTransform xform)
|
|
||||||
{
|
|
||||||
System.out.println( "drawRenderableImage(RenderableImage, AfflineTransform):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "xform = " + xform );
|
|
||||||
g2D.drawRenderableImage( img, xform );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawRenderedImage(RenderedImage img,
|
|
||||||
AffineTransform xform)
|
|
||||||
{
|
|
||||||
System.out.println( "drawRenderedImage(RenderedImage, AffineTransform):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "xform = " + xform );
|
|
||||||
g2D.drawRenderedImage( img, xform );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawString(AttributedCharacterIterator iterator,
|
|
||||||
float x, float y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawString(AttributedCharacterIterator):" );
|
|
||||||
System.out.println( "iterator = " + iterator );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawString( iterator, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
// public void drawString(AttributedCharacterIterator iterator,
|
|
||||||
// int x, int y)
|
|
||||||
// {
|
|
||||||
// g2D.drawString( iterator, x, y );
|
|
||||||
// }
|
|
||||||
|
|
||||||
public void drawString(String s, float x, float y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawString(s,x,y):" );
|
|
||||||
System.out.println( "s = " + s );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawString( s, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
// public void drawString(String str, int x, int y)
|
|
||||||
// {
|
|
||||||
// g2D.drawString( str, x, y );
|
|
||||||
// }
|
|
||||||
|
|
||||||
public void fill(Shape s)
|
|
||||||
{
|
|
||||||
System.out.println( "fill(Shape):" );
|
|
||||||
System.out.println( "s = " + s );
|
|
||||||
g2D.fill( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
// public void fill3DRect(int x, int y, int width, int height,
|
|
||||||
// boolean raised) {
|
|
||||||
// g2D.fill3DRect( x, y, width, height, raised );
|
|
||||||
// }
|
|
||||||
|
|
||||||
public Color getBackground()
|
|
||||||
{
|
|
||||||
System.out.println( "getBackground():" );
|
|
||||||
return g2D.getBackground();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Composite getComposite()
|
|
||||||
{
|
|
||||||
System.out.println( "getComposite():" );
|
|
||||||
return g2D.getComposite();
|
|
||||||
}
|
|
||||||
|
|
||||||
public GraphicsConfiguration getDeviceConfiguration()
|
|
||||||
{
|
|
||||||
System.out.println( "getDeviceConfiguration():" );
|
|
||||||
return g2D.getDeviceConfiguration();
|
|
||||||
}
|
|
||||||
|
|
||||||
public FontRenderContext getFontRenderContext()
|
|
||||||
{
|
|
||||||
System.out.println( "getFontRenderContext():" );
|
|
||||||
return g2D.getFontRenderContext();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Paint getPaint()
|
|
||||||
{
|
|
||||||
System.out.println( "getPaint():" );
|
|
||||||
return g2D.getPaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getRenderingHint(RenderingHints.Key hintKey)
|
|
||||||
{
|
|
||||||
System.out.println( "getRenderingHint(RenderingHints.Key):" );
|
|
||||||
System.out.println( "hintKey = " + hintKey );
|
|
||||||
return g2D.getRenderingHint( hintKey );
|
|
||||||
}
|
|
||||||
|
|
||||||
public RenderingHints getRenderingHints()
|
|
||||||
{
|
|
||||||
System.out.println( "getRenderingHints():" );
|
|
||||||
return g2D.getRenderingHints();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Stroke getStroke()
|
|
||||||
{
|
|
||||||
System.out.println( "getStroke():" );
|
|
||||||
return g2D.getStroke();
|
|
||||||
}
|
|
||||||
|
|
||||||
public AffineTransform getTransform()
|
|
||||||
{
|
|
||||||
System.out.println( "getTransform():" );
|
|
||||||
return g2D.getTransform();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hit(Rectangle rect,
|
|
||||||
Shape s,
|
|
||||||
boolean onStroke)
|
|
||||||
{
|
|
||||||
System.out.println( "hit(Rectangle, Shape, onStroke):" );
|
|
||||||
System.out.println( "rect = " + rect );
|
|
||||||
System.out.println( "s = " + s );
|
|
||||||
System.out.println( "onStroke = " + onStroke );
|
|
||||||
return g2D.hit( rect, s, onStroke );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void rotate(double theta)
|
|
||||||
{
|
|
||||||
System.out.println( "rotate(theta):" );
|
|
||||||
System.out.println( "theta = " + theta );
|
|
||||||
g2D.rotate( theta );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void rotate(double theta, double x, double y)
|
|
||||||
{
|
|
||||||
System.out.println( "rotate(double,double,double):" );
|
|
||||||
System.out.println( "theta = " + theta );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.rotate( theta, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void scale(double sx, double sy)
|
|
||||||
{
|
|
||||||
System.out.println( "scale(double,double):" );
|
|
||||||
System.out.println( "sx = " + sx );
|
|
||||||
System.out.println( "sy" );
|
|
||||||
g2D.scale( sx, sy );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBackground(Color color)
|
|
||||||
{
|
|
||||||
System.out.println( "setBackground(Color):" );
|
|
||||||
System.out.println( "color = " + color );
|
|
||||||
g2D.setBackground( color );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setComposite(Composite comp)
|
|
||||||
{
|
|
||||||
System.out.println( "setComposite(Composite):" );
|
|
||||||
System.out.println( "comp = " + comp );
|
|
||||||
g2D.setComposite( comp );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPaint( Paint paint )
|
|
||||||
{
|
|
||||||
System.out.println( "setPain(Paint):" );
|
|
||||||
System.out.println( "paint = " + paint );
|
|
||||||
g2D.setPaint( paint );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
|
|
||||||
{
|
|
||||||
System.out.println( "setRenderingHint(RenderingHints.Key, Object):" );
|
|
||||||
System.out.println( "hintKey = " + hintKey );
|
|
||||||
System.out.println( "hintValue = " + hintValue );
|
|
||||||
g2D.setRenderingHint( hintKey, hintValue );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRenderingHints(Map hints)
|
|
||||||
{
|
|
||||||
System.out.println( "setRenderingHints(Map):" );
|
|
||||||
System.out.println( "hints = " + hints );
|
|
||||||
g2D.setRenderingHints( hints );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStroke(Stroke s)
|
|
||||||
{
|
|
||||||
System.out.println( "setStroke(Stoke):" );
|
|
||||||
System.out.println( "s = " + s );
|
|
||||||
g2D.setStroke( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransform(AffineTransform Tx)
|
|
||||||
{
|
|
||||||
System.out.println( "setTransform():" );
|
|
||||||
System.out.println( "Tx = " + Tx );
|
|
||||||
g2D.setTransform( Tx );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void shear(double shx, double shy)
|
|
||||||
{
|
|
||||||
System.out.println( "shear(shx, dhy):" );
|
|
||||||
System.out.println( "shx = " + shx );
|
|
||||||
System.out.println( "shy = " + shy );
|
|
||||||
g2D.shear( shx, shy );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void transform(AffineTransform Tx)
|
|
||||||
{
|
|
||||||
System.out.println( "transform(AffineTransform):" );
|
|
||||||
System.out.println( "Tx = " + Tx );
|
|
||||||
g2D.transform( Tx );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void translate(double tx, double ty)
|
|
||||||
{
|
|
||||||
System.out.println( "translate(double, double):" );
|
|
||||||
System.out.println( "tx = " + tx );
|
|
||||||
System.out.println( "ty = " + ty );
|
|
||||||
g2D.translate( tx, ty );
|
|
||||||
}
|
|
||||||
|
|
||||||
// public void translate(int x, int y)
|
|
||||||
// {
|
|
||||||
// g2D.translate( x, y );
|
|
||||||
// }
|
|
||||||
|
|
||||||
public void clearRect(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "clearRect(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.clearRect( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clipRect(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "clipRect(int, int, int, int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.clipRect( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void copyArea(int x, int y, int width, int height,
|
|
||||||
int dx, int dy)
|
|
||||||
{
|
|
||||||
System.out.println( "copyArea(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.copyArea( x, y, width, height, dx, dy );
|
|
||||||
}
|
|
||||||
|
|
||||||
public Graphics create()
|
|
||||||
{
|
|
||||||
System.out.println( "create():" );
|
|
||||||
return g2D.create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Graphics create(int x, int y, int width, int height) {
|
|
||||||
System.out.println( "create(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
return g2D.create( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void dispose()
|
|
||||||
{
|
|
||||||
System.out.println( "dispose():" );
|
|
||||||
g2D.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void draw3DRect(int x, int y, int width, int height,
|
|
||||||
boolean raised) {
|
|
||||||
System.out.println( "draw3DRect(int,int,int,int,boolean):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "raised = " + raised );
|
|
||||||
g2D.draw3DRect( x, y, width, height, raised );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawArc(int x, int y, int width, int height,
|
|
||||||
int startAngle, int arcAngle)
|
|
||||||
{
|
|
||||||
System.out.println( "drawArc(int,int,int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "startAngle = " + startAngle );
|
|
||||||
System.out.println( "arcAngle = " + arcAngle );
|
|
||||||
g2D.drawArc( x, y, width, height, startAngle, arcAngle );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawBytes(byte data[], int offset, int length, int x, int y) {
|
|
||||||
System.out.println( "drawBytes(byte[],int,int,int,int):" );
|
|
||||||
System.out.println( "data = " + data );
|
|
||||||
System.out.println( "offset = " + offset );
|
|
||||||
System.out.println( "length = " + length );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawBytes( data, offset, length, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawChars(char data[], int offset, int length, int x, int y) {
|
|
||||||
System.out.println( "drawChars(data,int,int,int,int):" );
|
|
||||||
System.out.println( "data = " + data.toString() );
|
|
||||||
System.out.println( "offset = " + offset );
|
|
||||||
System.out.println( "length = " + length );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawChars( data, offset, length, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img,
|
|
||||||
int dx1, int dy1, int dx2, int dy2,
|
|
||||||
int sx1, int sy1, int sx2, int sy2,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "dx1 = " + dx1 );
|
|
||||||
System.out.println( "dy1 = " + dy1 );
|
|
||||||
System.out.println( "dx2 = " + dx2 );
|
|
||||||
System.out.println( "dy2 = " + dy2 );
|
|
||||||
System.out.println( "sx1 = " + sx1 );
|
|
||||||
System.out.println( "sy1 = " + sy1 );
|
|
||||||
System.out.println( "sx2 = " + sx2 );
|
|
||||||
System.out.println( "sy2 = " + sy2 );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img,
|
|
||||||
int dx1, int dy1, int dx2, int dy2,
|
|
||||||
int sx1, int sy1, int sx2, int sy2,
|
|
||||||
Color bgcolor,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "dx1 = " + dx1 );
|
|
||||||
System.out.println( "dy1 = " + dy1 );
|
|
||||||
System.out.println( "dx2 = " + dx2 );
|
|
||||||
System.out.println( "dy2 = " + dy2 );
|
|
||||||
System.out.println( "sx1 = " + sx1 );
|
|
||||||
System.out.println( "sy1 = " + sy1 );
|
|
||||||
System.out.println( "sx2 = " + sx2 );
|
|
||||||
System.out.println( "sy2 = " + sy2 );
|
|
||||||
System.out.println( "bgcolor = " + bgcolor );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img, int x, int y,
|
|
||||||
Color bgcolor,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,Color,ImageObserver):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "bgcolor = " + bgcolor );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, x, y, bgcolor, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img, int x, int y,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,observer):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, x, y, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img, int x, int y,
|
|
||||||
int width, int height,
|
|
||||||
Color bgcolor,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,int,int,Color,ImageObserver):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "bgcolor = " + bgcolor );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, x, y, width, height, bgcolor, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean drawImage(Image img, int x, int y,
|
|
||||||
int width, int height,
|
|
||||||
ImageObserver observer)
|
|
||||||
{
|
|
||||||
System.out.println( "drawImage(Image,int,int,width,height,observer):" );
|
|
||||||
System.out.println( "img = " + img );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "observer = " + observer );
|
|
||||||
return g2D.drawImage( img, x, y, width, height, observer );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawLine(int x1, int y1, int x2, int y2)
|
|
||||||
{
|
|
||||||
System.out.println( "drawLine(int,int,int,int):" );
|
|
||||||
System.out.println( "x1 = " + x1 );
|
|
||||||
System.out.println( "y1 = " + y1 );
|
|
||||||
System.out.println( "x2 = " + x2 );
|
|
||||||
System.out.println( "y2 = " + y2 );
|
|
||||||
g2D.drawLine( x1, y1, x2, y2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawOval(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "drawOval(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.drawOval( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawPolygon(Polygon p) {
|
|
||||||
System.out.println( "drawPolygon(Polygon):" );
|
|
||||||
System.out.println( "p = " + p );
|
|
||||||
g2D.drawPolygon( p );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawPolygon(int xPoints[], int yPoints[],
|
|
||||||
int nPoints)
|
|
||||||
{
|
|
||||||
System.out.println( "drawPolygon(int[],int[],int):" );
|
|
||||||
System.out.println( "xPoints = " + xPoints );
|
|
||||||
System.out.println( "yPoints = " + yPoints );
|
|
||||||
System.out.println( "nPoints = " + nPoints );
|
|
||||||
g2D.drawPolygon( xPoints, yPoints, nPoints );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawPolyline(int xPoints[], int yPoints[],
|
|
||||||
int nPoints)
|
|
||||||
{
|
|
||||||
System.out.println( "drawPolyline(int[],int[],int):" );
|
|
||||||
System.out.println( "xPoints = " + xPoints );
|
|
||||||
System.out.println( "yPoints = " + yPoints );
|
|
||||||
System.out.println( "nPoints = " + nPoints );
|
|
||||||
g2D.drawPolyline( xPoints, yPoints, nPoints );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawRect(int x, int y, int width, int height) {
|
|
||||||
System.out.println( "drawRect(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.drawRect( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawRoundRect(int x, int y, int width, int height,
|
|
||||||
int arcWidth, int arcHeight)
|
|
||||||
{
|
|
||||||
System.out.println( "drawRoundRect(int,int,int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "arcWidth = " + arcWidth );
|
|
||||||
System.out.println( "arcHeight = " + arcHeight );
|
|
||||||
g2D.drawRoundRect( x, y, width, height, arcWidth, arcHeight );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawString(AttributedCharacterIterator iterator,
|
|
||||||
int x, int y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawString(AttributedCharacterIterator,int,int):" );
|
|
||||||
System.out.println( "iterator = " + iterator );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawString( iterator, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawString(String str, int x, int y)
|
|
||||||
{
|
|
||||||
System.out.println( "drawString(str,int,int):" );
|
|
||||||
System.out.println( "str = " + str );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.drawString( str, x, y );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fill3DRect(int x, int y, int width, int height,
|
|
||||||
boolean raised) {
|
|
||||||
System.out.println( "fill3DRect(int,int,int,int,boolean):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "raised = " + raised );
|
|
||||||
g2D.fill3DRect( x, y, width, height, raised );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillArc(int x, int y, int width, int height,
|
|
||||||
int startAngle, int arcAngle)
|
|
||||||
{
|
|
||||||
System.out.println( "fillArc(int,int,int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
System.out.println( "startAngle = " + startAngle );
|
|
||||||
System.out.println( "arcAngle = " + arcAngle );
|
|
||||||
g2D.fillArc( x, y, width, height, startAngle, arcAngle );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillOval(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "fillOval(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.fillOval( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillPolygon(Polygon p) {
|
|
||||||
System.out.println( "fillPolygon(Polygon):" );
|
|
||||||
System.out.println( "p = " + p );
|
|
||||||
g2D.fillPolygon( p );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillPolygon(int xPoints[], int yPoints[],
|
|
||||||
int nPoints)
|
|
||||||
{
|
|
||||||
System.out.println( "fillPolygon(int[],int[],int):" );
|
|
||||||
System.out.println( "xPoints = " + xPoints );
|
|
||||||
System.out.println( "yPoints = " + yPoints );
|
|
||||||
System.out.println( "nPoints = " + nPoints );
|
|
||||||
g2D.fillPolygon( xPoints, yPoints, nPoints );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillRect(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "fillRect(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.fillRect( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fillRoundRect(int x, int y, int width, int height,
|
|
||||||
int arcWidth, int arcHeight)
|
|
||||||
{
|
|
||||||
System.out.println( "fillRoundRect(int,int,int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.fillRoundRect( x, y, width, height, arcWidth, arcHeight );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void finalize() {
|
|
||||||
System.out.println( "finalize():" );
|
|
||||||
g2D.finalize();
|
|
||||||
|
|
||||||
super.finalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Shape getClip()
|
|
||||||
{
|
|
||||||
System.out.println( "getClip():" );
|
|
||||||
return g2D.getClip();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Rectangle getClipBounds()
|
|
||||||
{
|
|
||||||
System.out.println( "getClipBounds():" );
|
|
||||||
return g2D.getClipBounds();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Rectangle getClipBounds(Rectangle r) {
|
|
||||||
System.out.println( "getClipBounds(Rectangle):" );
|
|
||||||
System.out.println( "r = " + r );
|
|
||||||
return g2D.getClipBounds( r );
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Rectangle getClipRect() {
|
|
||||||
System.out.println( "getClipRect():" );
|
|
||||||
return g2D.getClipRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Color getColor()
|
|
||||||
{
|
|
||||||
System.out.println( "getColor():" );
|
|
||||||
return g2D.getColor();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Font getFont()
|
|
||||||
{
|
|
||||||
System.out.println( "getFont():" );
|
|
||||||
return g2D.getFont();
|
|
||||||
}
|
|
||||||
|
|
||||||
public FontMetrics getFontMetrics() {
|
|
||||||
System.out.println( "getFontMetrics():" );
|
|
||||||
return g2D.getFontMetrics();
|
|
||||||
}
|
|
||||||
|
|
||||||
public FontMetrics getFontMetrics(Font f)
|
|
||||||
{
|
|
||||||
System.out.println( "getFontMetrics():" );
|
|
||||||
return g2D.getFontMetrics( f );
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hitClip(int x, int y, int width, int height) {
|
|
||||||
System.out.println( "hitClip(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
return g2D.hitClip( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClip(Shape clip)
|
|
||||||
{
|
|
||||||
System.out.println( "setClip(Shape):" );
|
|
||||||
System.out.println( "clip = " + clip );
|
|
||||||
g2D.setClip( clip );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClip(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
System.out.println( "setClip(int,int,int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
System.out.println( "width = " + width );
|
|
||||||
System.out.println( "height = " + height );
|
|
||||||
g2D.setClip( x, y, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setColor(Color c)
|
|
||||||
{
|
|
||||||
System.out.println( "setColor():" );
|
|
||||||
System.out.println( "c = " + c );
|
|
||||||
g2D.setColor( c );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFont(Font font)
|
|
||||||
{
|
|
||||||
System.out.println( "setFont(Font):" );
|
|
||||||
System.out.println( "font = " + font );
|
|
||||||
g2D.setFont( font );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPaintMode()
|
|
||||||
{
|
|
||||||
System.out.println( "setPaintMode():" );
|
|
||||||
g2D.setPaintMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setXORMode(Color c1)
|
|
||||||
{
|
|
||||||
System.out.println( "setXORMode(Color):" );
|
|
||||||
System.out.println( "c1 = " + c1 );
|
|
||||||
g2D.setXORMode( c1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
System.out.println( "toString():" );
|
|
||||||
return g2D.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void translate(int x, int y)
|
|
||||||
{
|
|
||||||
System.out.println( "translate(int,int):" );
|
|
||||||
System.out.println( "x = " + x );
|
|
||||||
System.out.println( "y = " + y );
|
|
||||||
g2D.translate( x, y );
|
|
||||||
}
|
|
||||||
}
|
|
@ -132,6 +132,9 @@ public class HSSFComment extends HSSFTextbox implements Comment {
|
|||||||
CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) getObjRecord().getSubRecords().get(0);
|
CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) getObjRecord().getSubRecords().get(0);
|
||||||
cod.setObjectId((short) (shapeId % 1024));
|
cod.setObjectId((short) (shapeId % 1024));
|
||||||
_note.setShapeId(shapeId % 1024);
|
_note.setShapeId(shapeId % 1024);
|
||||||
|
/* This breaks TestCloneSheets!
|
||||||
|
* cod.setObjectId(shapeId);
|
||||||
|
_note.setShapeId(shapeId); */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,6 +51,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
/**
|
/**
|
||||||
* @deprecated (Sep 2008) HSSFSheet parameter is ignored
|
* @deprecated (Sep 2008) HSSFSheet parameter is ignored
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public HSSFFormulaEvaluator(HSSFSheet sheet, HSSFWorkbook workbook) {
|
public HSSFFormulaEvaluator(HSSFSheet sheet, HSSFWorkbook workbook) {
|
||||||
this(workbook);
|
this(workbook);
|
||||||
if (false) {
|
if (false) {
|
||||||
@ -104,10 +105,12 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
CollaboratingWorkbooksEnvironment.setup(workbookNames, wbEvals);
|
CollaboratingWorkbooksEnvironment.setup(workbookNames, wbEvals);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setupReferencedWorkbooks(Map<String, FormulaEvaluator> evaluators) {
|
public void setupReferencedWorkbooks(Map<String, FormulaEvaluator> evaluators) {
|
||||||
CollaboratingWorkbooksEnvironment.setupFormulaEvaluator(evaluators);
|
CollaboratingWorkbooksEnvironment.setupFormulaEvaluator(evaluators);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public WorkbookEvaluator _getWorkbookEvaluator() {
|
public WorkbookEvaluator _getWorkbookEvaluator() {
|
||||||
return _bookEvaluator;
|
return _bookEvaluator;
|
||||||
}
|
}
|
||||||
@ -116,6 +119,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* Does nothing
|
* Does nothing
|
||||||
* @deprecated (Aug 2008) - not needed, since the current row can be derived from the cell
|
* @deprecated (Aug 2008) - not needed, since the current row can be derived from the cell
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setCurrentRow(HSSFRow row) {
|
public void setCurrentRow(HSSFRow row) {
|
||||||
// do nothing
|
// do nothing
|
||||||
if (false) {
|
if (false) {
|
||||||
@ -131,6 +135,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* Failure to call this method after changing cell values will cause incorrect behaviour
|
* Failure to call this method after changing cell values will cause incorrect behaviour
|
||||||
* of the evaluate~ methods of this class
|
* of the evaluate~ methods of this class
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void clearAllCachedResultValues() {
|
public void clearAllCachedResultValues() {
|
||||||
_bookEvaluator.clearAllCachedResultValues();
|
_bookEvaluator.clearAllCachedResultValues();
|
||||||
}
|
}
|
||||||
@ -143,6 +148,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
public void notifyUpdateCell(HSSFCell cell) {
|
public void notifyUpdateCell(HSSFCell cell) {
|
||||||
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell(cell));
|
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell(cell));
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public void notifyUpdateCell(Cell cell) {
|
public void notifyUpdateCell(Cell cell) {
|
||||||
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell((HSSFCell)cell));
|
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell((HSSFCell)cell));
|
||||||
}
|
}
|
||||||
@ -155,6 +161,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
public void notifyDeleteCell(HSSFCell cell) {
|
public void notifyDeleteCell(HSSFCell cell) {
|
||||||
_bookEvaluator.notifyDeleteCell(new HSSFEvaluationCell(cell));
|
_bookEvaluator.notifyDeleteCell(new HSSFEvaluationCell(cell));
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public void notifyDeleteCell(Cell cell) {
|
public void notifyDeleteCell(Cell cell) {
|
||||||
_bookEvaluator.notifyDeleteCell(new HSSFEvaluationCell((HSSFCell)cell));
|
_bookEvaluator.notifyDeleteCell(new HSSFEvaluationCell((HSSFCell)cell));
|
||||||
}
|
}
|
||||||
@ -165,6 +172,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* Failure to call this method after changing cell values will cause incorrect behaviour
|
* Failure to call this method after changing cell values will cause incorrect behaviour
|
||||||
* of the evaluate~ methods of this class
|
* of the evaluate~ methods of this class
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void notifySetFormula(Cell cell) {
|
public void notifySetFormula(Cell cell) {
|
||||||
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell((HSSFCell)cell));
|
_bookEvaluator.notifyUpdateCell(new HSSFEvaluationCell((HSSFCell)cell));
|
||||||
}
|
}
|
||||||
@ -179,6 +187,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* @param cell may be <code>null</code> signifying that the cell is not present (or blank)
|
* @param cell may be <code>null</code> signifying that the cell is not present (or blank)
|
||||||
* @return <code>null</code> if the supplied cell is <code>null</code> or blank
|
* @return <code>null</code> if the supplied cell is <code>null</code> or blank
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public CellValue evaluate(Cell cell) {
|
public CellValue evaluate(Cell cell) {
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
return null;
|
return null;
|
||||||
@ -217,6 +226,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* @param cell The cell to evaluate
|
* @param cell The cell to evaluate
|
||||||
* @return -1 for non-formula cells, or the type of the <em>formula result</em>
|
* @return -1 for non-formula cells, or the type of the <em>formula result</em>
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int evaluateFormulaCell(Cell cell) {
|
public int evaluateFormulaCell(Cell cell) {
|
||||||
if (cell == null || cell.getCellType() != HSSFCell.CELL_TYPE_FORMULA) {
|
if (cell == null || cell.getCellType() != HSSFCell.CELL_TYPE_FORMULA) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -242,6 +252,7 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* result of the formula. If you simply want the formula
|
* result of the formula. If you simply want the formula
|
||||||
* value computed for you, use {@link #evaluateFormulaCell(Cell)}}
|
* value computed for you, use {@link #evaluateFormulaCell(Cell)}}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCell evaluateInCell(Cell cell) {
|
public HSSFCell evaluateInCell(Cell cell) {
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
return null;
|
return null;
|
||||||
@ -350,7 +361,8 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
* This is a helpful wrapper around looping over all
|
* This is a helpful wrapper around looping over all
|
||||||
* cells, and calling evaluateFormulaCell on each one.
|
* cells, and calling evaluateFormulaCell on each one.
|
||||||
*/
|
*/
|
||||||
public void evaluateAll() {
|
@Override
|
||||||
|
public void evaluateAll() {
|
||||||
evaluateAllFormulaCells(_book, this);
|
evaluateAllFormulaCells(_book, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -379,11 +391,13 @@ public class HSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
public void setIgnoreMissingWorkbooks(boolean ignore){
|
public void setIgnoreMissingWorkbooks(boolean ignore){
|
||||||
_bookEvaluator.setIgnoreMissingWorkbooks(ignore);
|
_bookEvaluator.setIgnoreMissingWorkbooks(ignore);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
public void setDebugEvaluationOutputForNextEval(boolean value){
|
public void setDebugEvaluationOutputForNextEval(boolean value){
|
||||||
_bookEvaluator.setDebugEvaluationOutputForNextEval(value);
|
_bookEvaluator.setDebugEvaluationOutputForNextEval(value);
|
||||||
}
|
}
|
||||||
|
@ -43,21 +43,25 @@ abstract class Ref2DPtgBase extends RefPtgBase {
|
|||||||
super(cr);
|
super(cr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void write(LittleEndianOutput out) {
|
public void write(LittleEndianOutput out) {
|
||||||
out.writeByte(getSid() + getPtgClass());
|
out.writeByte(getSid() + getPtgClass());
|
||||||
writeCoordinates(out);
|
writeCoordinates(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public final String toFormulaString() {
|
public final String toFormulaString() {
|
||||||
return formatReferenceAsString();
|
return formatReferenceAsString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract byte getSid();
|
protected abstract byte getSid();
|
||||||
|
|
||||||
|
@Override
|
||||||
public final int getSize() {
|
public final int getSize() {
|
||||||
return SIZE;
|
return SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public final String toString() {
|
public final String toString() {
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
sb.append(getClass().getName());
|
sb.append(getClass().getName());
|
||||||
|
@ -111,6 +111,7 @@ public abstract class RefPtgBase extends OperandPtg {
|
|||||||
return cr.formatAsString();
|
return cr.formatAsString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public final byte getDefaultOperandClass() {
|
public final byte getDefaultOperandClass() {
|
||||||
return Ptg.CLASS_REF;
|
return Ptg.CLASS_REF;
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,9 @@ public interface FormulaEvaluator {
|
|||||||
* and the result. If you want the cell replaced with
|
* and the result. If you want the cell replaced with
|
||||||
* the result of the formula, use {@link #evaluateInCell(Cell)}
|
* the result of the formula, use {@link #evaluateInCell(Cell)}
|
||||||
* @param cell The cell to evaluate
|
* @param cell The cell to evaluate
|
||||||
* @return The type of the formula result (the cell's type remains as Cell.CELL_TYPE_FORMULA however)
|
* @return The type of the formula result, i.e. -1 if the cell is not a formula,
|
||||||
|
* or one of Cell.CELL_TYPE_NUMERIC, Cell.CELL_TYPE_STRING, Cell.CELL_TYPE_BOOLEAN, Cell.CELL_TYPE_ERROR
|
||||||
|
* Note: the cell's type remains as Cell.CELL_TYPE_FORMULA however.
|
||||||
*/
|
*/
|
||||||
int evaluateFormulaCell(Cell cell);
|
int evaluateFormulaCell(Cell cell);
|
||||||
|
|
||||||
|
@ -287,9 +287,9 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
SheetDataWriter createSheetDataWriter() throws IOException {
|
SheetDataWriter createSheetDataWriter() throws IOException {
|
||||||
if(_compressTmpFiles) {
|
if(_compressTmpFiles) {
|
||||||
return new GZIPSheetDataWriter(_sharedStringSource);
|
return new GZIPSheetDataWriter(_sharedStringSource);
|
||||||
} else {
|
|
||||||
return new SheetDataWriter(_sharedStringSource);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new SheetDataWriter(_sharedStringSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
XSSFSheet getXSSFSheet(SXSSFSheet sheet)
|
XSSFSheet getXSSFSheet(SXSSFSheet sheet)
|
||||||
@ -331,7 +331,6 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
ZipOutputStream zos = new ZipOutputStream(out);
|
ZipOutputStream zos = new ZipOutputStream(out);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
Enumeration<ZipEntry> en = (Enumeration<ZipEntry>) zip.entries();
|
Enumeration<ZipEntry> en = (Enumeration<ZipEntry>) zip.entries();
|
||||||
while (en.hasMoreElements())
|
while (en.hasMoreElements())
|
||||||
{
|
{
|
||||||
@ -490,6 +489,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the index of the active sheet (0-based)
|
* @return the index of the active sheet (0-based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getActiveSheetIndex()
|
public int getActiveSheetIndex()
|
||||||
{
|
{
|
||||||
return _wb.getActiveSheetIndex();
|
return _wb.getActiveSheetIndex();
|
||||||
@ -502,6 +502,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param sheetIndex index of the active sheet (0-based)
|
* @param sheetIndex index of the active sheet (0-based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setActiveSheet(int sheetIndex)
|
public void setActiveSheet(int sheetIndex)
|
||||||
{
|
{
|
||||||
_wb.setActiveSheet(sheetIndex);
|
_wb.setActiveSheet(sheetIndex);
|
||||||
@ -512,6 +513,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the first tab that to display in the list of tabs (0-based).
|
* @return the first tab that to display in the list of tabs (0-based).
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getFirstVisibleTab()
|
public int getFirstVisibleTab()
|
||||||
{
|
{
|
||||||
return _wb.getFirstVisibleTab();
|
return _wb.getFirstVisibleTab();
|
||||||
@ -522,6 +524,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param sheetIndex the first tab that to display in the list of tabs (0-based)
|
* @param sheetIndex the first tab that to display in the list of tabs (0-based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setFirstVisibleTab(int sheetIndex)
|
public void setFirstVisibleTab(int sheetIndex)
|
||||||
{
|
{
|
||||||
_wb.setFirstVisibleTab(sheetIndex);
|
_wb.setFirstVisibleTab(sheetIndex);
|
||||||
@ -533,6 +536,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetname the name of the sheet to reorder
|
* @param sheetname the name of the sheet to reorder
|
||||||
* @param pos the position that we want to insert the sheet into (0 based)
|
* @param pos the position that we want to insert the sheet into (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setSheetOrder(String sheetname, int pos)
|
public void setSheetOrder(String sheetname, int pos)
|
||||||
{
|
{
|
||||||
_wb.setSheetOrder(sheetname,pos);
|
_wb.setSheetOrder(sheetname,pos);
|
||||||
@ -547,6 +551,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @see Sheet#setSelected(boolean)
|
* @see Sheet#setSelected(boolean)
|
||||||
* @param index the index of the sheet to select (0 based)
|
* @param index the index of the sheet to select (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setSelectedTab(int index)
|
public void setSelectedTab(int index)
|
||||||
{
|
{
|
||||||
_wb.setSelectedTab(index);
|
_wb.setSelectedTab(index);
|
||||||
@ -558,6 +563,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheet number (0 based)
|
* @param sheet number (0 based)
|
||||||
* @throws IllegalArgumentException if the name is greater than 31 chars or contains <code>/\?*[]</code>
|
* @throws IllegalArgumentException if the name is greater than 31 chars or contains <code>/\?*[]</code>
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setSheetName(int sheet, String name)
|
public void setSheetName(int sheet, String name)
|
||||||
{
|
{
|
||||||
_wb.setSheetName(sheet,name);
|
_wb.setSheetName(sheet,name);
|
||||||
@ -569,6 +575,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheet sheet number (0 based)
|
* @param sheet sheet number (0 based)
|
||||||
* @return Sheet name
|
* @return Sheet name
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public String getSheetName(int sheet)
|
public String getSheetName(int sheet)
|
||||||
{
|
{
|
||||||
return _wb.getSheetName(sheet);
|
return _wb.getSheetName(sheet);
|
||||||
@ -580,6 +587,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param name the sheet name
|
* @param name the sheet name
|
||||||
* @return index of the sheet (0 based)
|
* @return index of the sheet (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getSheetIndex(String name)
|
public int getSheetIndex(String name)
|
||||||
{
|
{
|
||||||
return _wb.getSheetIndex(name);
|
return _wb.getSheetIndex(name);
|
||||||
@ -591,6 +599,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheet the sheet to look up
|
* @param sheet the sheet to look up
|
||||||
* @return index of the sheet (0 based)
|
* @return index of the sheet (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getSheetIndex(Sheet sheet)
|
public int getSheetIndex(Sheet sheet)
|
||||||
{
|
{
|
||||||
return _wb.getSheetIndex(getXSSFSheet((SXSSFSheet)sheet));
|
return _wb.getSheetIndex(getXSSFSheet((SXSSFSheet)sheet));
|
||||||
@ -602,6 +611,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return Sheet representing the new sheet.
|
* @return Sheet representing the new sheet.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Sheet createSheet()
|
public Sheet createSheet()
|
||||||
{
|
{
|
||||||
return createAndRegisterSXSSFSheet(_wb.createSheet());
|
return createAndRegisterSXSSFSheet(_wb.createSheet());
|
||||||
@ -629,6 +639,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @return Sheet representing the new sheet.
|
* @return Sheet representing the new sheet.
|
||||||
* @throws IllegalArgumentException if the name is greater than 31 chars or contains <code>/\?*[]</code>
|
* @throws IllegalArgumentException if the name is greater than 31 chars or contains <code>/\?*[]</code>
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Sheet createSheet(String sheetname)
|
public Sheet createSheet(String sheetname)
|
||||||
{
|
{
|
||||||
return createAndRegisterSXSSFSheet(_wb.createSheet(sheetname));
|
return createAndRegisterSXSSFSheet(_wb.createSheet(sheetname));
|
||||||
@ -639,6 +650,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return Sheet representing the cloned sheet.
|
* @return Sheet representing the cloned sheet.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Sheet cloneSheet(int sheetNum)
|
public Sheet cloneSheet(int sheetNum)
|
||||||
{
|
{
|
||||||
throw new RuntimeException("NotImplemented");
|
throw new RuntimeException("NotImplemented");
|
||||||
@ -650,6 +662,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the number of sheets
|
* @return the number of sheets
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNumberOfSheets()
|
public int getNumberOfSheets()
|
||||||
{
|
{
|
||||||
return _wb.getNumberOfSheets();
|
return _wb.getNumberOfSheets();
|
||||||
@ -661,6 +674,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param index of the sheet number (0-based physical & logical)
|
* @param index of the sheet number (0-based physical & logical)
|
||||||
* @return Sheet at the provided index
|
* @return Sheet at the provided index
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Sheet getSheetAt(int index)
|
public Sheet getSheetAt(int index)
|
||||||
{
|
{
|
||||||
return getSXSSFSheet(_wb.getSheetAt(index));
|
return getSXSSFSheet(_wb.getSheetAt(index));
|
||||||
@ -672,6 +686,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param name of the sheet
|
* @param name of the sheet
|
||||||
* @return Sheet with the name provided or <code>null</code> if it does not exist
|
* @return Sheet with the name provided or <code>null</code> if it does not exist
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Sheet getSheet(String name)
|
public Sheet getSheet(String name)
|
||||||
{
|
{
|
||||||
return getSXSSFSheet(_wb.getSheet(name));
|
return getSXSSFSheet(_wb.getSheet(name));
|
||||||
@ -682,6 +697,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param index of the sheet to remove (0-based)
|
* @param index of the sheet to remove (0-based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removeSheetAt(int index)
|
public void removeSheetAt(int index)
|
||||||
{
|
{
|
||||||
XSSFSheet xSheet=_wb.getSheetAt(index);
|
XSSFSheet xSheet=_wb.getSheetAt(index);
|
||||||
@ -717,6 +733,8 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @deprecated use {@link SXSSFSheet#setRepeatingRows(CellRangeAddress)}
|
* @deprecated use {@link SXSSFSheet#setRepeatingRows(CellRangeAddress)}
|
||||||
* or {@link SXSSFSheet#setRepeatingColumns(CellRangeAddress)}
|
* or {@link SXSSFSheet#setRepeatingColumns(CellRangeAddress)}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
|
@Override
|
||||||
public void setRepeatingRowsAndColumns(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
|
public void setRepeatingRowsAndColumns(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
|
||||||
{
|
{
|
||||||
_wb.setRepeatingRowsAndColumns(sheetIndex,startColumn,endColumn,startRow,endRow);
|
_wb.setRepeatingRowsAndColumns(sheetIndex,startColumn,endColumn,startRow,endRow);
|
||||||
@ -727,6 +745,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return new font object
|
* @return new font object
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Font createFont()
|
public Font createFont()
|
||||||
{
|
{
|
||||||
return _wb.createFont();
|
return _wb.createFont();
|
||||||
@ -737,6 +756,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the font with the matched attributes or <code>null</code>
|
* @return the font with the matched attributes or <code>null</code>
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Font findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline)
|
public Font findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline)
|
||||||
{
|
{
|
||||||
return _wb.findFont(boldWeight, color, fontHeight, name, italic, strikeout, typeOffset, underline);
|
return _wb.findFont(boldWeight, color, fontHeight, name, italic, strikeout, typeOffset, underline);
|
||||||
@ -748,6 +768,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return number of fonts
|
* @return number of fonts
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getNumberOfFonts()
|
public short getNumberOfFonts()
|
||||||
{
|
{
|
||||||
return _wb.getNumberOfFonts();
|
return _wb.getNumberOfFonts();
|
||||||
@ -759,6 +780,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param idx index number (0-based)
|
* @param idx index number (0-based)
|
||||||
* @return font at the index
|
* @return font at the index
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Font getFontAt(short idx)
|
public Font getFontAt(short idx)
|
||||||
{
|
{
|
||||||
return _wb.getFontAt(idx);
|
return _wb.getFontAt(idx);
|
||||||
@ -769,6 +791,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the new Cell Style object
|
* @return the new Cell Style object
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public CellStyle createCellStyle()
|
public CellStyle createCellStyle()
|
||||||
{
|
{
|
||||||
return _wb.createCellStyle();
|
return _wb.createCellStyle();
|
||||||
@ -779,6 +802,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return count of cell styles
|
* @return count of cell styles
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getNumCellStyles()
|
public short getNumCellStyles()
|
||||||
{
|
{
|
||||||
return _wb.getNumCellStyles();
|
return _wb.getNumCellStyles();
|
||||||
@ -790,6 +814,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param idx index within the set of styles (0-based)
|
* @param idx index within the set of styles (0-based)
|
||||||
* @return CellStyle object at the index
|
* @return CellStyle object at the index
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public CellStyle getCellStyleAt(short idx)
|
public CellStyle getCellStyleAt(short idx)
|
||||||
{
|
{
|
||||||
return _wb.getCellStyleAt(idx);
|
return _wb.getCellStyleAt(idx);
|
||||||
@ -813,6 +838,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param stream - the java OutputStream you wish to write to
|
* @param stream - the java OutputStream you wish to write to
|
||||||
* @exception IOException if anything can't be written.
|
* @exception IOException if anything can't be written.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void write(OutputStream stream) throws IOException
|
public void write(OutputStream stream) throws IOException
|
||||||
{
|
{
|
||||||
for (SXSSFSheet sheet : _xFromSxHash.values())
|
for (SXSSFSheet sheet : _xFromSxHash.values())
|
||||||
@ -839,7 +865,9 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
tmplFile.delete();
|
if(!tmplFile.delete()) {
|
||||||
|
throw new IOException("Could not delete temporary file after processing: " + tmplFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -861,6 +889,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
/**
|
/**
|
||||||
* @return the total number of defined names in this workbook
|
* @return the total number of defined names in this workbook
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNumberOfNames()
|
public int getNumberOfNames()
|
||||||
{
|
{
|
||||||
return _wb.getNumberOfNames();
|
return _wb.getNumberOfNames();
|
||||||
@ -870,6 +899,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param name the name of the defined name
|
* @param name the name of the defined name
|
||||||
* @return the defined name with the specified name. <code>null</code> if not found.
|
* @return the defined name with the specified name. <code>null</code> if not found.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Name getName(String name)
|
public Name getName(String name)
|
||||||
{
|
{
|
||||||
return _wb.getName(name);
|
return _wb.getName(name);
|
||||||
@ -879,6 +909,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @return the defined name at the specified index
|
* @return the defined name at the specified index
|
||||||
* @throws IllegalArgumentException if the supplied index is invalid
|
* @throws IllegalArgumentException if the supplied index is invalid
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Name getNameAt(int nameIndex)
|
public Name getNameAt(int nameIndex)
|
||||||
{
|
{
|
||||||
return _wb.getNameAt(nameIndex);
|
return _wb.getNameAt(nameIndex);
|
||||||
@ -889,6 +920,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return new defined name object
|
* @return new defined name object
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Name createName()
|
public Name createName()
|
||||||
{
|
{
|
||||||
return _wb.createName();
|
return _wb.createName();
|
||||||
@ -902,6 +934,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param name the name of the defined name
|
* @param name the name of the defined name
|
||||||
* @return zero based index of the defined name. <tt>-1</tt> if not found.
|
* @return zero based index of the defined name. <tt>-1</tt> if not found.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNameIndex(String name)
|
public int getNameIndex(String name)
|
||||||
{
|
{
|
||||||
return _wb.getNameIndex(name);
|
return _wb.getNameIndex(name);
|
||||||
@ -912,6 +945,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param index named range index (0 based)
|
* @param index named range index (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removeName(int index)
|
public void removeName(int index)
|
||||||
{
|
{
|
||||||
_wb.removeName(index);
|
_wb.removeName(index);
|
||||||
@ -922,6 +956,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param name the name of the defined name
|
* @param name the name of the defined name
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removeName(String name)
|
public void removeName(String name)
|
||||||
{
|
{
|
||||||
_wb.removeName(name);
|
_wb.removeName(name);
|
||||||
@ -934,6 +969,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep consistent with java)
|
* @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep consistent with java)
|
||||||
* @param reference Valid name Reference for the Print Area
|
* @param reference Valid name Reference for the Print Area
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setPrintArea(int sheetIndex, String reference)
|
public void setPrintArea(int sheetIndex, String reference)
|
||||||
{
|
{
|
||||||
_wb.setPrintArea(sheetIndex,reference);
|
_wb.setPrintArea(sheetIndex,reference);
|
||||||
@ -948,6 +984,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param startRow Row to begin the printarea
|
* @param startRow Row to begin the printarea
|
||||||
* @param endRow Row to end the printarea
|
* @param endRow Row to end the printarea
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
|
public void setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
|
||||||
{
|
{
|
||||||
_wb.setPrintArea(sheetIndex, startColumn, endColumn, startRow, endRow);
|
_wb.setPrintArea(sheetIndex, startColumn, endColumn, startRow, endRow);
|
||||||
@ -960,6 +997,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep consistent with java)
|
* @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep consistent with java)
|
||||||
* @return String Null if no print area has been defined
|
* @return String Null if no print area has been defined
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public String getPrintArea(int sheetIndex)
|
public String getPrintArea(int sheetIndex)
|
||||||
{
|
{
|
||||||
return _wb.getPrintArea(sheetIndex);
|
return _wb.getPrintArea(sheetIndex);
|
||||||
@ -970,6 +1008,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param sheetIndex Zero-based sheet index (0 = First Sheet)
|
* @param sheetIndex Zero-based sheet index (0 = First Sheet)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removePrintArea(int sheetIndex)
|
public void removePrintArea(int sheetIndex)
|
||||||
{
|
{
|
||||||
_wb.removePrintArea(sheetIndex);
|
_wb.removePrintArea(sheetIndex);
|
||||||
@ -983,6 +1022,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* {@link MissingCellPolicy}
|
* {@link MissingCellPolicy}
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public MissingCellPolicy getMissingCellPolicy()
|
public MissingCellPolicy getMissingCellPolicy()
|
||||||
{
|
{
|
||||||
return _wb.getMissingCellPolicy();
|
return _wb.getMissingCellPolicy();
|
||||||
@ -996,6 +1036,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* {@link org.apache.poi.ss.usermodel.Row#getCell(int)}. See
|
* {@link org.apache.poi.ss.usermodel.Row#getCell(int)}. See
|
||||||
* {@link MissingCellPolicy}
|
* {@link MissingCellPolicy}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setMissingCellPolicy(MissingCellPolicy missingCellPolicy)
|
public void setMissingCellPolicy(MissingCellPolicy missingCellPolicy)
|
||||||
{
|
{
|
||||||
_wb.setMissingCellPolicy(missingCellPolicy);
|
_wb.setMissingCellPolicy(missingCellPolicy);
|
||||||
@ -1006,6 +1047,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the DataFormat object
|
* @return the DataFormat object
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public DataFormat createDataFormat()
|
public DataFormat createDataFormat()
|
||||||
{
|
{
|
||||||
return _wb.createDataFormat();
|
return _wb.createDataFormat();
|
||||||
@ -1025,6 +1067,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @see #PICTURE_TYPE_PNG
|
* @see #PICTURE_TYPE_PNG
|
||||||
* @see #PICTURE_TYPE_DIB
|
* @see #PICTURE_TYPE_DIB
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int addPicture(byte[] pictureData, int format)
|
public int addPicture(byte[] pictureData, int format)
|
||||||
{
|
{
|
||||||
return _wb.addPicture(pictureData,format);
|
return _wb.addPicture(pictureData,format);
|
||||||
@ -1035,6 +1078,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @return the list of pictures (a list of {@link PictureData} objects.)
|
* @return the list of pictures (a list of {@link PictureData} objects.)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public List<? extends PictureData> getAllPictures()
|
public List<? extends PictureData> getAllPictures()
|
||||||
{
|
{
|
||||||
return _wb.getAllPictures();
|
return _wb.getAllPictures();
|
||||||
@ -1044,6 +1088,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* Returns an object that handles instantiating concrete
|
* Returns an object that handles instantiating concrete
|
||||||
* classes of the various instances one needs for HSSF and XSSF.
|
* classes of the various instances one needs for HSSF and XSSF.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public CreationHelper getCreationHelper()
|
public CreationHelper getCreationHelper()
|
||||||
{
|
{
|
||||||
return _wb.getCreationHelper();
|
return _wb.getCreationHelper();
|
||||||
@ -1052,6 +1097,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
/**
|
/**
|
||||||
* @return <code>false</code> if this workbook is not visible in the GUI
|
* @return <code>false</code> if this workbook is not visible in the GUI
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isHidden()
|
public boolean isHidden()
|
||||||
{
|
{
|
||||||
return _wb.isHidden();
|
return _wb.isHidden();
|
||||||
@ -1060,6 +1106,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
/**
|
/**
|
||||||
* @param hiddenFlag pass <code>false</code> to make the workbook visible in the GUI
|
* @param hiddenFlag pass <code>false</code> to make the workbook visible in the GUI
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setHidden(boolean hiddenFlag)
|
public void setHidden(boolean hiddenFlag)
|
||||||
{
|
{
|
||||||
_wb.setHidden(hiddenFlag);
|
_wb.setHidden(hiddenFlag);
|
||||||
@ -1074,6 +1121,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetIx Number
|
* @param sheetIx Number
|
||||||
* @return <code>true</code> if sheet is hidden
|
* @return <code>true</code> if sheet is hidden
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isSheetHidden(int sheetIx)
|
public boolean isSheetHidden(int sheetIx)
|
||||||
{
|
{
|
||||||
return _wb.isSheetHidden(sheetIx);
|
return _wb.isSheetHidden(sheetIx);
|
||||||
@ -1088,6 +1136,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetIx sheet index to check
|
* @param sheetIx sheet index to check
|
||||||
* @return <code>true</code> if sheet is very hidden
|
* @return <code>true</code> if sheet is very hidden
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isSheetVeryHidden(int sheetIx)
|
public boolean isSheetVeryHidden(int sheetIx)
|
||||||
{
|
{
|
||||||
return _wb.isSheetVeryHidden(sheetIx);
|
return _wb.isSheetVeryHidden(sheetIx);
|
||||||
@ -1099,6 +1148,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* @param sheetIx the sheet index (0-based)
|
* @param sheetIx the sheet index (0-based)
|
||||||
* @param hidden True to mark the sheet as hidden, false otherwise
|
* @param hidden True to mark the sheet as hidden, false otherwise
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setSheetHidden(int sheetIx, boolean hidden)
|
public void setSheetHidden(int sheetIx, boolean hidden)
|
||||||
{
|
{
|
||||||
_wb.setSheetHidden(sheetIx,hidden);
|
_wb.setSheetHidden(sheetIx,hidden);
|
||||||
@ -1119,6 +1169,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* <code>Workbook.SHEET_STATE_VERY_HIDDEN</code>.
|
* <code>Workbook.SHEET_STATE_VERY_HIDDEN</code>.
|
||||||
* @throws IllegalArgumentException if the supplied sheet index or state is invalid
|
* @throws IllegalArgumentException if the supplied sheet index or state is invalid
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setSheetHidden(int sheetIx, int hidden)
|
public void setSheetHidden(int sheetIx, int hidden)
|
||||||
{
|
{
|
||||||
_wb.setSheetHidden(sheetIx,hidden);
|
_wb.setSheetHidden(sheetIx,hidden);
|
||||||
@ -1128,6 +1179,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
*
|
*
|
||||||
* @param toopack the toolpack to register
|
* @param toopack the toolpack to register
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void addToolPack(UDFFinder toopack)
|
public void addToolPack(UDFFinder toopack)
|
||||||
{
|
{
|
||||||
_wb.addToolPack(toopack);
|
_wb.addToolPack(toopack);
|
||||||
@ -1145,6 +1197,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
* workbook values when the workbook is opened
|
* workbook values when the workbook is opened
|
||||||
* @since 3.8
|
* @since 3.8
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setForceFormulaRecalculation(boolean value){
|
public void setForceFormulaRecalculation(boolean value){
|
||||||
_wb.setForceFormulaRecalculation(value);
|
_wb.setForceFormulaRecalculation(value);
|
||||||
}
|
}
|
||||||
@ -1152,6 +1205,7 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
/**
|
/**
|
||||||
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean getForceFormulaRecalculation(){
|
public boolean getForceFormulaRecalculation(){
|
||||||
return _wb.getForceFormulaRecalculation();
|
return _wb.getForceFormulaRecalculation();
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.streaming;
|
package org.apache.poi.xssf.streaming;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.Assert.fail;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -238,7 +234,6 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
assertEquals("value?", cell.getStringCellValue());
|
assertEquals("value?", cell.getStringCellValue());
|
||||||
|
|
||||||
assertTrue(wb.dispose());
|
assertTrue(wb.dispose());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -315,16 +310,18 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void workbookDispose()
|
public void workbookDispose() throws IOException
|
||||||
{
|
{
|
||||||
SXSSFWorkbook wb = new SXSSFWorkbook();
|
SXSSFWorkbook wb = new SXSSFWorkbook();
|
||||||
// the underlying writer is SheetDataWriter
|
// the underlying writer is SheetDataWriter
|
||||||
assertWorkbookDispose(wb);
|
assertWorkbookDispose(wb);
|
||||||
|
wb.close();
|
||||||
|
|
||||||
wb = new SXSSFWorkbook();
|
wb = new SXSSFWorkbook();
|
||||||
wb.setCompressTempFiles(true);
|
wb.setCompressTempFiles(true);
|
||||||
// the underlying writer is GZIPSheetDataWriter
|
// the underlying writer is GZIPSheetDataWriter
|
||||||
assertWorkbookDispose(wb);
|
assertWorkbookDispose(wb);
|
||||||
|
wb.close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,9 +331,12 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
Workbook wb = new SXSSFWorkbook(10);
|
Workbook wb = new SXSSFWorkbook(10);
|
||||||
populateWorkbook(wb);
|
populateWorkbook(wb);
|
||||||
saveTwice(wb);
|
saveTwice(wb);
|
||||||
|
wb.close();
|
||||||
|
|
||||||
wb = new XSSFWorkbook();
|
wb = new XSSFWorkbook();
|
||||||
populateWorkbook(wb);
|
populateWorkbook(wb);
|
||||||
saveTwice(wb);
|
saveTwice(wb);
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files
|
// Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files
|
||||||
@ -371,6 +371,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
} finally {
|
} finally {
|
||||||
assertTrue(wb.dispose());
|
assertTrue(wb.dispose());
|
||||||
}
|
}
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
out.delete();
|
out.delete();
|
||||||
}
|
}
|
||||||
@ -404,6 +405,30 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
private static class NullOutputStream extends OutputStream {
|
private static class NullOutputStream extends OutputStream {
|
||||||
@Override
|
@Override
|
||||||
public void write(int b) throws IOException {
|
public void write(int b) throws IOException {
|
||||||
|
// nothing to do here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBug54523() throws IOException {
|
||||||
|
SXSSFWorkbook wb = new SXSSFWorkbook(100);
|
||||||
|
Sheet sh = wb.createSheet();
|
||||||
|
|
||||||
|
for (int i = 0; i < 81000; i++) {
|
||||||
|
Row row = sh.createRow(i);
|
||||||
|
for (int j = 0; j < 1000; j++) {
|
||||||
|
Cell cell = row.createCell(j);
|
||||||
|
cell.setCellValue("dddd");
|
||||||
|
}
|
||||||
|
if (i % 100 == 0){
|
||||||
|
System.out.println("x - " + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FileOutputStream out = new FileOutputStream("C:\\temp\\54523_large.xlsx");
|
||||||
|
wb.write(out);
|
||||||
|
out.close();
|
||||||
|
wb.dispose();
|
||||||
|
wb.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,9 +17,15 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
import org.apache.poi.ss.SpreadsheetVersion;
|
||||||
import org.apache.poi.ss.usermodel.BaseTestRow;
|
import org.apache.poi.ss.usermodel.BaseTestRow;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||||
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for XSSFRow
|
* Tests for XSSFRow
|
||||||
@ -37,4 +43,48 @@ public final class TestXSSFRow extends BaseTestRow {
|
|||||||
public void testCellBounds() {
|
public void testCellBounds() {
|
||||||
baseTestCellBounds(SpreadsheetVersion.EXCEL2007.getLastColumnIndex());
|
baseTestCellBounds(SpreadsheetVersion.EXCEL2007.getLastColumnIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void test56490() {
|
||||||
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("56490.xlsx");
|
||||||
|
XSSFSheet sheet = wb.getSheetAt(0);
|
||||||
|
|
||||||
|
String columnWanted = "Link";
|
||||||
|
Integer columnNo = null;
|
||||||
|
List<Cell> cells = new ArrayList<Cell>();
|
||||||
|
|
||||||
|
// TODO: change this!!
|
||||||
|
assertEquals(-1, sheet.getFirstRowNum());
|
||||||
|
assertEquals(-1, sheet.getLastRowNum());
|
||||||
|
|
||||||
|
Row firstRow = sheet.getRow(-1);
|
||||||
|
assertNotNull(firstRow);
|
||||||
|
assertNotNull(firstRow.iterator());
|
||||||
|
|
||||||
|
for(Row row : sheet) {
|
||||||
|
for(Cell cell : row) {
|
||||||
|
System.out.println("Cell in Row: " + row.getRowNum() + ": " + cell.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Cell cell : firstRow) {
|
||||||
|
if (cell.getStringCellValue().equals(columnWanted)) {
|
||||||
|
columnNo = cell.getColumnIndex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (columnNo != null) {
|
||||||
|
for (Row row : sheet) {
|
||||||
|
Cell c = row.getCell(columnNo);
|
||||||
|
if (c == null || c.getCellType() == Cell.CELL_TYPE_BLANK) {
|
||||||
|
} else {
|
||||||
|
cells.add(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
System.out.println("could not find column" + columnWanted
|
||||||
|
+ "in first row");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,13 +17,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertSame;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.Assert.fail;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -42,17 +36,7 @@ import org.apache.poi.openxml4j.opc.PackagePartName;
|
|||||||
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
||||||
import org.apache.poi.openxml4j.opc.internal.MemoryPackagePart;
|
import org.apache.poi.openxml4j.opc.internal.MemoryPackagePart;
|
||||||
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
|
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
|
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
|
||||||
import org.apache.poi.ss.usermodel.Font;
|
|
||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
|
||||||
import org.apache.poi.ss.usermodel.RichTextString;
|
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
|
||||||
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
|
||||||
import org.apache.poi.ss.util.AreaReference;
|
import org.apache.poi.ss.util.AreaReference;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
import org.apache.poi.util.IOUtils;
|
import org.apache.poi.util.IOUtils;
|
||||||
@ -768,4 +752,20 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
setPivotData(wb2);
|
setPivotData(wb2);
|
||||||
assertTrue(wb2.getPivotTables().size() == 2);
|
assertTrue(wb2.getPivotTables().size() == 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBug55644() throws IOException {
|
||||||
|
XSSFWorkbook wb = new XSSFWorkbook();
|
||||||
|
XSSFSheet sheet = wb.createSheet("students");
|
||||||
|
XSSFRow row = sheet.createRow(1);
|
||||||
|
XSSFCell cell = row.createCell(1);
|
||||||
|
cell.setCellValue("sandeepzzzzzzzzzzzzzzzzzzzzzzzzz");
|
||||||
|
sheet.autoSizeColumn(1);
|
||||||
|
|
||||||
|
FileOutputStream fileOut = new FileOutputStream("C:\\temp\\55644.xlsx");
|
||||||
|
wb.write(fileOut);
|
||||||
|
fileOut.close();
|
||||||
|
|
||||||
|
wb.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,8 +197,10 @@ public final class POIDataSamples {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new RuntimeException("Must set system property '" +
|
dataDirName = "test-data";
|
||||||
TEST_PROPERTY + "' before running tests");
|
|
||||||
|
/*throw new RuntimeException("Must set system property '" +
|
||||||
|
TEST_PROPERTY + "' before running tests");*/
|
||||||
}
|
}
|
||||||
File dataDir = new File(dataDirName, _moduleDir);
|
File dataDir = new File(dataDirName, _moduleDir);
|
||||||
if (!dataDir.exists()) {
|
if (!dataDir.exists()) {
|
||||||
|
@ -26,6 +26,7 @@ import java.util.Date;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
|
import org.apache.poi.hssf.dev.BiffViewer;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
@ -380,6 +381,71 @@ public final class TestCellStyle extends TestCase {
|
|||||||
assertEquals(CellStyle.BORDER_DOUBLE, cs.getBorderRight());
|
assertEquals(CellStyle.BORDER_DOUBLE, cs.getBorderRight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBug54894() throws IOException {
|
||||||
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
|
HSSFSheet sheet = wb.createSheet("new sheet");
|
||||||
|
|
||||||
|
// Create a row and put some cells in it. Rows are 0 based.
|
||||||
|
HSSFRow row = sheet.createRow(1);
|
||||||
|
|
||||||
|
// Create a cell and put a value in it.
|
||||||
|
HSSFCell cell = row.createCell(1);
|
||||||
|
cell.setCellValue(4);
|
||||||
|
|
||||||
|
CellStyle def = cell.getCellStyle();
|
||||||
|
|
||||||
|
String filenameB = "C:\\temp\\54894B.xls";
|
||||||
|
FileOutputStream fileOut = new FileOutputStream(filenameB);
|
||||||
|
try {
|
||||||
|
wb.write(fileOut);
|
||||||
|
} finally {
|
||||||
|
fileOut.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Style the cell with borders all around.
|
||||||
|
HSSFCellStyle style = wb.createCellStyle();
|
||||||
|
style.cloneStyleFrom(def);
|
||||||
|
|
||||||
|
String filenameM = "C:\\temp\\54894M.xls";
|
||||||
|
fileOut = new FileOutputStream(filenameM);
|
||||||
|
try {
|
||||||
|
wb.write(fileOut);
|
||||||
|
} finally {
|
||||||
|
fileOut.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
||||||
|
|
||||||
|
cell.setCellStyle(style);
|
||||||
|
|
||||||
|
String filenameM1 = "C:\\temp\\54894M1.xls";
|
||||||
|
fileOut = new FileOutputStream(filenameM1);
|
||||||
|
try {
|
||||||
|
wb.write(fileOut);
|
||||||
|
} finally {
|
||||||
|
fileOut.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the output to a file
|
||||||
|
String filename = "C:\\temp\\54894.xls";
|
||||||
|
fileOut = new FileOutputStream(filename);
|
||||||
|
try {
|
||||||
|
wb.write(fileOut);
|
||||||
|
} finally {
|
||||||
|
fileOut.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameB});
|
||||||
|
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameM});
|
||||||
|
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameM1});
|
||||||
|
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filename});*/
|
||||||
|
|
||||||
|
System.out.println("testfile M");
|
||||||
|
BiffViewer.main(new String[] {filenameM});
|
||||||
|
System.out.println("testfile M1");
|
||||||
|
BiffViewer.main(new String[] {filenameM1});
|
||||||
|
}
|
||||||
|
|
||||||
public void testShrinkToFit() {
|
public void testShrinkToFit() {
|
||||||
// Existing file
|
// Existing file
|
||||||
HSSFWorkbook wb = openSample("ShrinkToFit.xls");
|
HSSFWorkbook wb = openSample("ShrinkToFit.xls");
|
||||||
@ -449,7 +515,7 @@ public final class TestCellStyle extends TestCase {
|
|||||||
public Throwable getException() {
|
public Throwable getException() {
|
||||||
return exception;
|
return exception;
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
public void test56563() throws Throwable {
|
public void test56563() throws Throwable {
|
||||||
CellFormatBugExample threadA = new CellFormatBugExample("56563a.xls");
|
CellFormatBugExample threadA = new CellFormatBugExample("56563a.xls");
|
||||||
|
@ -17,20 +17,37 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.apache.poi.ddf.EscherSpRecord;
|
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
import org.apache.poi.hssf.model.CommentShape;
|
import org.apache.poi.hssf.model.CommentShape;
|
||||||
import org.apache.poi.hssf.model.HSSFTestModelHelper;
|
import org.apache.poi.hssf.model.HSSFTestModelHelper;
|
||||||
import org.apache.poi.hssf.record.*;
|
import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
|
||||||
|
import org.apache.poi.hssf.record.EscherAggregate;
|
||||||
import java.io.*;
|
import org.apache.poi.hssf.record.NoteRecord;
|
||||||
import java.util.Arrays;
|
import org.apache.poi.hssf.record.ObjRecord;
|
||||||
|
import org.apache.poi.hssf.record.TextObjectRecord;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.ClientAnchor;
|
||||||
|
import org.apache.poi.ss.usermodel.Comment;
|
||||||
|
import org.apache.poi.ss.usermodel.CreationHelper;
|
||||||
|
import org.apache.poi.ss.usermodel.Drawing;
|
||||||
|
import org.apache.poi.ss.usermodel.RichTextString;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Evgeniy Berlog
|
* @author Evgeniy Berlog
|
||||||
* @date 26.06.12
|
* @date 26.06.12
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public class TestComment extends TestCase {
|
public class TestComment extends TestCase {
|
||||||
|
|
||||||
public void testResultEqualsToAbstractShape() {
|
public void testResultEqualsToAbstractShape() {
|
||||||
@ -53,25 +70,25 @@ public class TestComment extends TestCase {
|
|||||||
byte[] actual = comment.getEscherContainer().getChild(0).serialize();
|
byte[] actual = comment.getEscherContainer().getChild(0).serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertArrayEquals(expected, actual);
|
||||||
|
|
||||||
expected = commentShape.getSpContainer().getChild(2).serialize();
|
expected = commentShape.getSpContainer().getChild(2).serialize();
|
||||||
actual = comment.getEscherContainer().getChild(2).serialize();
|
actual = comment.getEscherContainer().getChild(2).serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertArrayEquals(expected, actual);
|
||||||
|
|
||||||
expected = commentShape.getSpContainer().getChild(3).serialize();
|
expected = commentShape.getSpContainer().getChild(3).serialize();
|
||||||
actual = comment.getEscherContainer().getChild(3).serialize();
|
actual = comment.getEscherContainer().getChild(3).serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertArrayEquals(expected, actual);
|
||||||
|
|
||||||
expected = commentShape.getSpContainer().getChild(4).serialize();
|
expected = commentShape.getSpContainer().getChild(4).serialize();
|
||||||
actual = comment.getEscherContainer().getChild(4).serialize();
|
actual = comment.getEscherContainer().getChild(4).serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertArrayEquals(expected, actual);
|
||||||
|
|
||||||
ObjRecord obj = comment.getObjRecord();
|
ObjRecord obj = comment.getObjRecord();
|
||||||
ObjRecord objShape = commentShape.getObjRecord();
|
ObjRecord objShape = commentShape.getObjRecord();
|
||||||
@ -88,7 +105,7 @@ public class TestComment extends TestCase {
|
|||||||
actual = torShape.serialize();
|
actual = torShape.serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertArrayEquals(expected, actual);
|
||||||
|
|
||||||
NoteRecord note = comment.getNoteRecord();
|
NoteRecord note = comment.getNoteRecord();
|
||||||
NoteRecord noteShape = commentShape.getNoteRecord();
|
NoteRecord noteShape = commentShape.getNoteRecord();
|
||||||
@ -98,7 +115,10 @@ public class TestComment extends TestCase {
|
|||||||
actual = noteShape.serialize();
|
actual = noteShape.serialize();
|
||||||
|
|
||||||
assertEquals(expected.length, actual.length);
|
assertEquals(expected.length, actual.length);
|
||||||
assertTrue(Arrays.equals(expected, actual));
|
assertTrue(
|
||||||
|
"\nHad: " + Arrays.toString(actual) +
|
||||||
|
"\n Expected: " + Arrays.toString(expected),
|
||||||
|
Arrays.equals(expected, actual));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAddToExistingFile() {
|
public void testAddToExistingFile() {
|
||||||
@ -240,6 +260,7 @@ public class TestComment extends TestCase {
|
|||||||
assertEquals(agg.getTailRecords().size(), 1);
|
assertEquals(agg.getTailRecords().size(), 1);
|
||||||
|
|
||||||
HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor());
|
HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor());
|
||||||
|
assertNotNull(shape);
|
||||||
|
|
||||||
assertEquals(comment.getOptRecord().getEscherProperties().size(), 10);
|
assertEquals(comment.getOptRecord().getEscherProperties().size(), 10);
|
||||||
}
|
}
|
||||||
@ -260,12 +281,12 @@ public class TestComment extends TestCase {
|
|||||||
|
|
||||||
assertEquals(comment.getShapeId(), 2024);
|
assertEquals(comment.getShapeId(), 2024);
|
||||||
|
|
||||||
CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0);
|
/*CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0);
|
||||||
assertEquals(cod.getObjectId(), 1000);
|
assertEquals(2024, cod.getObjectId());
|
||||||
EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0);
|
EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0);
|
||||||
assertEquals(spRecord.getShapeId(), 2024);
|
assertEquals(spRecord.getShapeId(), 2024);
|
||||||
assertEquals(comment.getShapeId(), 2024);
|
assertEquals(comment.getShapeId(), 2024);
|
||||||
assertEquals(comment.getNoteRecord().getShapeId(), 1000);
|
assertEquals(2024, comment.getNoteRecord().getShapeId());*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAttemptToSave2CommentsWithSameCoordinates(){
|
public void testAttemptToSave2CommentsWithSameCoordinates(){
|
||||||
@ -285,4 +306,116 @@ public class TestComment extends TestCase {
|
|||||||
}
|
}
|
||||||
assertNotNull(err);
|
assertNotNull(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void testBug56380InsertComments() throws Exception {
|
||||||
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||||
|
HSSFSheet sheet = workbook.createSheet();
|
||||||
|
Drawing drawing = sheet.createDrawingPatriarch();
|
||||||
|
int noOfRows = 3000;
|
||||||
|
String comment = "c";
|
||||||
|
|
||||||
|
for(int i = 0; i < noOfRows; i++) {
|
||||||
|
Row row = sheet.createRow(i);
|
||||||
|
Cell cell = row.createCell(0);
|
||||||
|
insertComment(drawing, cell, comment + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that the comments are created properly before writing
|
||||||
|
checkComments(sheet, noOfRows, comment);
|
||||||
|
|
||||||
|
System.out.println("Listing comments before write");
|
||||||
|
listComments(sheet.getDrawingPatriarch());
|
||||||
|
|
||||||
|
assertEquals(noOfRows, sheet.getDrawingPatriarch().getChildren().size());
|
||||||
|
|
||||||
|
// store in temp-file
|
||||||
|
File file = new File(System.getProperty("java.io.tmpdir") + File.separatorChar + "test_comments.xls");
|
||||||
|
FileOutputStream fs = new FileOutputStream(file);
|
||||||
|
try {
|
||||||
|
sheet.getWorkbook().write(fs);
|
||||||
|
} finally {
|
||||||
|
fs.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// save and recreate the workbook from the saved file
|
||||||
|
workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);
|
||||||
|
sheet = workbook.getSheetAt(0);
|
||||||
|
|
||||||
|
// recreate the workbook from the saved file
|
||||||
|
/*FileInputStream fi = new FileInputStream(file);
|
||||||
|
try {
|
||||||
|
sheet = new HSSFWorkbook(fi).getSheetAt(0);
|
||||||
|
} finally {
|
||||||
|
fi.close();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
System.out.println("Listing comments after read");
|
||||||
|
listComments(sheet.getDrawingPatriarch());
|
||||||
|
|
||||||
|
assertEquals(noOfRows, sheet.getDrawingPatriarch().getChildren().size());
|
||||||
|
|
||||||
|
// store file after
|
||||||
|
file = new File(System.getProperty("java.io.tmpdir") + File.separatorChar + "test_comments_after.xls");
|
||||||
|
fs = new FileOutputStream(file);
|
||||||
|
try {
|
||||||
|
sheet.getWorkbook().write(fs);
|
||||||
|
} finally {
|
||||||
|
fs.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that the comments are created properly after reading back in
|
||||||
|
//checkComments(sheet, noOfRows, comment);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void listComments(HSSFShapeContainer container) {
|
||||||
|
for (Object object : container.getChildren()) {
|
||||||
|
HSSFShape shape = (HSSFShape) object;
|
||||||
|
if (shape instanceof HSSFShapeGroup) {
|
||||||
|
listComments((HSSFShapeContainer) shape);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (shape instanceof HSSFComment) {
|
||||||
|
HSSFComment comment = (HSSFComment) shape;
|
||||||
|
System.out.println("Comment " + comment.getString().getString() + " at " + comment.getColumn() + "/" + comment.getRow());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkComments(Sheet sheet, int noOfRows, String commentStr) {
|
||||||
|
for(int i = 0; i < noOfRows; i++) {
|
||||||
|
assertNotNull(sheet.getRow(i));
|
||||||
|
Cell cell = sheet.getRow(i).getCell(0);
|
||||||
|
assertNotNull(cell);
|
||||||
|
Comment comment = cell.getCellComment();
|
||||||
|
assertNotNull("Did not get a Cell Comment for row " + i, comment);
|
||||||
|
assertNotNull(comment.getString());
|
||||||
|
|
||||||
|
assertEquals(i, comment.getRow());
|
||||||
|
assertEquals(0,comment.getColumn());
|
||||||
|
|
||||||
|
assertEquals(commentStr + i, comment.getString().getString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void insertComment(Drawing drawing, Cell cell, String message) {
|
||||||
|
CreationHelper factory = cell.getSheet().getWorkbook().getCreationHelper();
|
||||||
|
|
||||||
|
ClientAnchor anchor = factory.createClientAnchor();
|
||||||
|
anchor.setCol1(cell.getColumnIndex());
|
||||||
|
anchor.setCol2(cell.getColumnIndex() + 1);
|
||||||
|
anchor.setRow1(cell.getRowIndex());
|
||||||
|
anchor.setRow2(cell.getRowIndex() + 1);
|
||||||
|
anchor.setDx1(100);
|
||||||
|
anchor.setDx2(100);
|
||||||
|
anchor.setDy1(100);
|
||||||
|
anchor.setDy2(100);
|
||||||
|
|
||||||
|
Comment comment = drawing.createCellComment(anchor);
|
||||||
|
|
||||||
|
RichTextString str = factory.createRichTextString(message);
|
||||||
|
comment.setString(str);
|
||||||
|
comment.setAuthor("fanfy");
|
||||||
|
cell.setCellComment(comment);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,12 +17,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.Assert.fail;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@ -55,8 +50,13 @@ import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
|
|||||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||||
import org.apache.poi.ss.formula.ptg.Area3DPtg;
|
import org.apache.poi.ss.formula.ptg.Area3DPtg;
|
||||||
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
|
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.FormulaEvaluator;
|
||||||
import org.apache.poi.ss.usermodel.Name;
|
import org.apache.poi.ss.usermodel.Name;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
import org.apache.poi.ss.util.CellUtil;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.util.TempFile;
|
import org.apache.poi.util.TempFile;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -1070,4 +1070,71 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
|
|||||||
private void expectName(HSSFWorkbook wb, String name, String expect) {
|
private void expectName(HSSFWorkbook wb, String name, String expect) {
|
||||||
assertEquals(expect, wb.getName(name).getRefersToFormula());
|
assertEquals(expect, wb.getName(name).getRefersToFormula());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test55747() throws IOException {
|
||||||
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
|
Sheet sheet =wb.createSheet("Test1");
|
||||||
|
Row row =sheet.createRow(0);
|
||||||
|
CellUtil.createCell(row, 0, "Hello world.");
|
||||||
|
row = sheet.createRow(1);
|
||||||
|
Cell cell = row.createCell(0);
|
||||||
|
cell.setCellType(Cell.CELL_TYPE_FORMULA);
|
||||||
|
cell.setCellFormula("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))");
|
||||||
|
|
||||||
|
Cell cell2 = row.createCell(1);
|
||||||
|
cell2.setCellType(Cell.CELL_TYPE_FORMULA);
|
||||||
|
cell2.setCellFormula("CONCATENATE(A1,\" - %%s.\")");
|
||||||
|
|
||||||
|
Cell cell3 = row.createCell(2);
|
||||||
|
cell3.setCellType(Cell.CELL_TYPE_FORMULA);
|
||||||
|
cell3.setCellFormula("ISBLANK(A1)");
|
||||||
|
|
||||||
|
wb.setForceFormulaRecalculation(true);
|
||||||
|
|
||||||
|
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
|
||||||
|
for(int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {
|
||||||
|
sheet = wb.getSheetAt(sheetNum);
|
||||||
|
for(Row r : sheet) {
|
||||||
|
for(Cell c : r) {
|
||||||
|
if(c.getCellType() == Cell.CELL_TYPE_FORMULA) {
|
||||||
|
evaluator.evaluateFormulaCell(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cell = row.getCell(0);
|
||||||
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
|
||||||
|
assertEquals("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))", cell.getCellFormula());
|
||||||
|
assertEquals("Hello world. - %%s.", cell.getStringCellValue());
|
||||||
|
|
||||||
|
cell2 = row.getCell(1);
|
||||||
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell2.getCellType());
|
||||||
|
assertEquals("CONCATENATE(A1,\" - %%s.\")", cell2.getCellFormula());
|
||||||
|
assertEquals("Hello world. - %%s.", cell2.getStringCellValue());
|
||||||
|
|
||||||
|
FileOutputStream stream = new FileOutputStream( "C:/temp/55747.xls");
|
||||||
|
try {
|
||||||
|
wb.write(stream);
|
||||||
|
} finally {
|
||||||
|
stream.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
Sheet sheetBack = wb.getSheetAt(0);
|
||||||
|
Row rowBack = sheetBack.getRow(1);
|
||||||
|
|
||||||
|
cell = rowBack.getCell(0);
|
||||||
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
|
||||||
|
assertEquals("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))", cell.getCellFormula());
|
||||||
|
assertEquals("Hello world. - %%s.", cell.getStringCellValue());
|
||||||
|
|
||||||
|
cell2 = rowBack.getCell(1);
|
||||||
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell2.getCellType());
|
||||||
|
assertEquals("CONCATENATE(A1,\" - %%s.\")", cell2.getCellFormula());
|
||||||
|
assertEquals("Hello world. - %%s.", cell2.getStringCellValue());
|
||||||
|
wbBack.close();
|
||||||
|
wb.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user