Hi Mark,
            what is the character value for arrow type of bullet. can u send
out what are available characters.

Thanks,


MSB wrote:
> 
> I am just weak and could not resist having a play. Anyway, here you go,
> how to insert a bulleted list into a cell;
> 
>         File file = null;
>         FileOutputStream fos = null;
>         HSSFWorkbook workbook = null;
>         HSSFSheet sheet = null;
>         HSSFRow row = null;
>         HSSFCell cell = null;
>         HSSFCellStyle wrapStyle = null;
>         String contents = null;
>         // This is the code for the bullet character
>         char bulletChar = 8226;
>         // and this the code for the new line character. You may
>         // equally be able to use '\n' or '\r' but I did not try these out
>         char newLineChar = 10;
>         try {
>             file = new File("........... Your file name
> .................");
>             fos = new FileOutputStream(file);
>             workbook = new HSSFWorkbook();
>             sheet = workbook.createSheet();
>             // You need to set wrapping on for the cell, so create a style
> with
>             // that attribute set.
>             wrapStyle = workbook.createCellStyle();
>             wrapStyle.setWrapText(true);
>             row = sheet.createRow(0);
>             cell = row.createCell(0);
>             // Note the bulletChar and newLineChar characters used when
>             // building the String for the cell.
>             contents = bulletChar +
>                        "Item One" +
>                        newLineChar +
>                        bulletChar +
>                        "Item Two" +
>                        newLineChar +
>                        bulletChar +
>                        "Item Three" +
>                        newLineChar +
>                        bulletChar +
>                        "Item Four";
>             cell.setCellValue(new HSSFRichTextString(contents));
>             // Set the cell sstyle to ensure the contents wrap.
>             cell.setCellStyle(wrapStyle);
>             
>             // This just sets the height of the row and the width to allow
> the
>             // list to be seen clearly.
>             row.setHeight((short)1000);
>             sheet.setColumnWidth(0, 5000);
>             workbook.write(fos);
> 
> 
> 
> deep4u wrote:
>> 
>> Hi Mark,
>>             Thanks for spending u r valuable time. i have one more doubt
>> can we create bullets in excel using apche poi.If u know please let me
>> know how to do.
>> 
>> Thanks,
>> 
>> MSB wrote:
>>> 
>>> Oh, well done, glad that I was finally able to help you find a solution
>>> even if it should have been obvious to me that the anchor would only be
>>> an influence once the file was opened using Excel, sorry about that.
>>> Even though you have a workable solution, just in case there are others
>>> following this thread, I am still going to post the demonstration code I
>>> have put together - the html stuff is below everything else, so just
>>> scroll down for that.
>>> 
>>> Currently, it only adjusts the width of the image and only works in
>>> situations where the column is far wider than the image. Later on, I am
>>> going to see if I can extend it to deal with the situation where the
>>> column is narrower than the image and where the image is placed across a
>>> number of columns. Once I have done this, I will try to do similar for
>>> rows.
>>> 
>>> import java.io.File;
>>> import java.io.FileInputStream;
>>> import java.io.FileOutputStream;
>>> import java.io.ByteArrayOutputStream;
>>> import java.io.FileNotFoundException;
>>> import java.io.IOException;
>>> 
>>> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
>>> import org.apache.poi.hssf.usermodel.HSSFSheet;
>>> import org.apache.poi.hssf.usermodel.HSSFRow;
>>> import org.apache.poi.hssf.usermodel.HSSFCell;
>>> import org.apache.poi.hssf.usermodel.HSSFCellStyle;
>>> import org.apache.poi.hssf.usermodel.HSSFFont;
>>> import org.apache.poi.hssf.usermodel.HSSFRichTextString;
>>> import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
>>> import org.apache.poi.hssf.usermodel.HSSFPatriarch;
>>> 
>>> /**
>>>  * An instance of this class demonstrates that it is possible to
>>> determine the
>>>  * width and location of an image dynamically.
>>>  *
>>>  * Currently, it is limited to setting the width of an image wihin a
>>> column
>>>  * whose own width is far greater than that of the image. It cannot yet
>>> handle
>>>  * situations where the image may lie across several columns and nor can
>>> it
>>>  * (yet) alter the height of the image.
>>>  *
>>>  * @author Mark B [[email protected]]
>>>  * @version 1.00 30th July 2009.
>>>  */
>>> public class WorkbookFromTemplate {
>>> 
>>>     public void buildWorkbookFromTemplate(String imageFilename,
>>>                                           String outputFilename)
>>>                                      throws IOException,
>>> FileNotFoundException {
>>>         File outputFile = null;
>>>         FileOutputStream fos = null;
>>>         HSSFWorkbook workbook = null;
>>>         HSSFSheet sheet = null;
>>>         HSSFRow row = null;
>>>         HSSFCell cell = null;
>>>         HSSFCellStyle style = null;
>>>         HSSFFont font = null;
>>>         HSSFClientAnchor anchor = null;
>>>         HSSFPatriarch patriarch = null;
>>>         double columnWidthCharUnits = 0.0;
>>>         double columnWidthPixels = 0.0;
>>>         double columnWidthMillimetres = 0.0;
>>>         double coordinatePositionsPerMillimetre = 0.0;
>>>         int leftBorder = 0;
>>>         int pictureWidth = 0;
>>> 
>>>         // These values set the width of the border and the size of the
>>>         // image.
>>>         int reqBorder = 5;
>>>         int reqPictureWidth = 25;
>>>         
>>>         String contents = null;
>>>         try {
>>>             workbook = new HSSFWorkbook();
>>>             sheet = workbook.createSheet();
>>>             style = workbook.createCellStyle();
>>>             font = workbook.getFontAt((short)1);
>>>             // By changing the point size of the font from 10 to 12, 14,
>>> 16, 8,
>>>             // etc, it is possible to check that the image is re-sized
>>> correctly
>>>             // as the width of the column responds to changes in the
>>> size of the
>>>             // font
>>>             font.setFontHeightInPoints((short)10);
>>>             style.setFont(font);
>>> 
>>>             // Populate the first cell in rows 9 to 20 with long Strings
>>> of
>>>             // data so that the resize operation will be quite dramatic.
>>>             for(int i = 9; i < 20; i++) {
>>>                 row = sheet.createRow(i);
>>>                 cell = row.createCell(0);
>>>                 contents = ("Setting the value of cell 1 in row " +
>>>                             i +
>>>                             " the current time in milliseconds time is "
>>> +
>>>                             System.currentTimeMillis());
>>>                 cell.setCellValue(new HSSFRichTextString(contents));
>>>                 cell.setCellStyle(style);
>>>             }
>>> 
>>>             // Autosize the column to accomdate the contents
>>>             sheet.autoSizeColumn((short)0);
>>> 
>>>             // Recover the size of the column in Excel's character
>>> units.
>>>             columnWidthCharUnits = sheet.getColumnWidth(0);
>>>             // Convert from Excels' character units into pixels to get
>>> the total
>>>             // width of the column in pixels
>>>             columnWidthPixels = ExcelUtil.widthUnits2Pixel(
>>>                     (short)columnWidthCharUnits);
>>>             // Convert from pixels to millimetres to get to total width
>>> of the
>>>             // column in millimetres
>>>             columnWidthMillimetres = columnWidthPixels /
>>>                     ExcelUtil.PIXELS_PER_MILLIMETRES;
>>>             // We 'know' that the column conatins a maximum of 1023
>>> co-ordinate
>>>             // positions. Calculate how many of these co-ordinate
>>> positions
>>>             // there are in a millimetre.
>>>             coordinatePositionsPerMillimetre =
>>>                     ExcelUtil.TOTAL_COLUMN_COORDINATE_POSITIONS /
>>>                     columnWidthMillimetres;
>>>             // Calculate the number of co-ordinate positions necessary
>>> to leave
>>>             // a border to the left of the image the required thickness.
>>>             leftBorder = (int)(reqBorder *
>>> coordinatePositionsPerMillimetre);
>>>             // Calculate the number of co-ordinate positions necessary
>>> to
>>>             // set the width of the image to the required number of
>>> millimetres.
>>>             // Remember to add on the thickness of the left border.
>>>             pictureWidth = (int)(leftBorder +
>>>                     (reqPictureWidth *
>>> coordinatePositionsPerMillimetre));
>>> 
>>>             // Create the anchor instance. Note that the parameters that
>>>             // specify the column(s) the image should occupy - they are
>>>             // parameters number 5 and 7 - both specify the same column;
>>> in
>>>             // this case 0. Normally, this would prevent the image from
>>>             // being seen; the settings of the first four parameters can
>>>             // be used to 'fine tune' this behaviour.
>>>             //
>>>             // Parameter 1 moves picture in from left hand edge.
>>>             // Parameter 2 moves top edge of picture downwards
>>>             // Parameter 3 moves the right hand edge of the image
>>>             // Parameter 4 moves the bottom edge of the image down
>>>             //
>>>             anchor = new HSSFClientAnchor(leftBorder,   // Inset image
>>> from left
>>>                                           0,            // Inset image
>>> from top
>>>                                           pictureWidth, // Width of
>>> image
>>>                                           0,            // Height of
>>> image
>>>                                           (short)0,     // 'From' column
>>>                                           0,            // 'From' row
>>>                                           (short)0,     // 'To' column
>>>                                           8);           // 'To' row
>>>             anchor.setAnchorType(3);
>>> 
>>>             // Add the image to the workbook
>>>             int index =
>>> workbook.addPicture(this.imageToBytes(imageFilename),
>>>                     HSSFWorkbook.PICTURE_TYPE_JPEG);
>>>             // Get the drawing patriarch and create the picture within
>>> it
>>>             patriarch = sheet.createDrawingPatriarch();
>>>             patriarch.createPicture(anchor, index);
>>> 
>>>             // Save the file away
>>>             outputFile = new File(outputFilename);
>>>             fos = new FileOutputStream(outputFile);
>>>             workbook.write(fos);
>>>         }
>>>         finally {
>>>             if(fos != null) {
>>>                 try {
>>>                     fos.close();
>>>                     fos = null;
>>>                 }
>>>                 catch(IOException ioEx) {
>>>                     // Not much I can do here!!
>>>                 }
>>>             }
>>>         }
>>>     }
>>> 
>>>     /**
>>>      * Loads - reads in and converts into an array of byte(s) - an image
>>> from
>>>      * a named file.
>>>      *
>>>      * @param imageFilename A String that encapsulates the path to and
>>> name
>>>      *                      of the file that contains the image which is
>>> to be
>>>      *                      'loaded'.
>>>      * @return An array of type byte that contains the raw data of the
>>> named
>>>      *         image.
>>>      * @throws java.io.FileNotFoundException Thrown if it was not
>>> possible to
>>>      *                                       open the specified file.
>>>      * @throws java.io.IOException Thrown if reading the file failed or
>>> was
>>>      *                             interrupted.
>>>      */
>>>     private byte[] imageToBytes(String imageFilename)
>>>                                      throws FileNotFoundException,
>>> IOException {
>>>         File imageFile = null;
>>>         FileInputStream fis = null;
>>>         ByteArrayOutputStream bos = null;
>>>         int read = 0;
>>>         try {
>>>             imageFile = new File(imageFilename);
>>>             fis = new FileInputStream(imageFile);
>>>             bos = new ByteArrayOutputStream();
>>>             while((read = fis.read()) != -1) {
>>>                 bos.write(read);
>>>             }
>>>             return(bos.toByteArray());
>>>         }
>>>         finally {
>>>             if(fis != null) {
>>>                 try {
>>>                     fis.close();
>>>                     fis = null;
>>>                 }
>>>                 catch(IOException ioEx) {
>>>                     // Nothing to do here
>>>                 }
>>>             }
>>>         }
>>>     }
>>> 
>>>     private String getContentsAsString(HSSFCell cell) {
>>>         String contents = null;
>>>         switch(cell.getCellType()) {
>>>             case HSSFCell.CELL_TYPE_BLANK:
>>>             case HSSFCell.CELL_TYPE_BOOLEAN:
>>>             case HSSFCell.CELL_TYPE_ERROR:
>>>             case HSSFCell.CELL_TYPE_FORMULA:
>>>             case HSSFCell.CELL_TYPE_NUMERIC:
>>>                 contents = String.valueOf(cell.getNumericCellValue());
>>>                 break;
>>>             case HSSFCell.CELL_TYPE_STRING:
>>>                 contents = cell.getRichStringCellValue().getString();
>>>                 break;
>>>         }
>>>         return(contents);
>>>     }
>>> 
>>>     /**
>>>      * @param args the command line arguments
>>>      */
>>>     public static void main(String[] args) {
>>>         try {
>>>             new WorkbookFromTemplate().buildWorkbookFromTemplate(
>>>                 "...Path to and name of image file....",
>>>                 "...Path to and name of document you want to
>>> create....");
>>>         }
>>>         catch(IOException ioEx) {
>>>             System.out.println("Caught a: " +
>>> ioEx.getClass().getName());
>>>             System.out.println("Message: " + ioEx.getMessage());
>>>             System.out.println("Stacktrace follows..................");
>>>             ioEx.printStackTrace(System.out);
>>>         }
>>>     }
>>> }
>>> 
>>> /**
>>>  * Utility methods used to perform conversions between Excel's character
>>>  * based column and row size measurements and pixels. The clas also
>>> contains
>>>  * various constants that are required in other calculations.
>>>  *
>>>  * @author xio[[email protected]]
>>>  * @version 1.01 30th July 2009.
>>>  *      Additional constants added by Mark B [[email protected]].
>>>  */
>>> public class ExcelUtil {
>>> 
>>>     public static final int TOTAL_COLUMN_COORDINATE_POSITIONS = 1023; //
>>> MB
>>>     public static final int TOTAL_ROW_COORDINATE_POSITIONS = 255;     //
>>> MB
>>>     public static final int PIXELS_PER_INCH = 96;                     //
>>> MB
>>>     public static final double PIXELS_PER_MILLIMETRES = 3.78;         //
>>> MB
>>>     public static final short EXCEL_COLUMN_WIDTH_FACTOR = 256;
>>>     public static final int UNIT_OFFSET_LENGTH = 7;
>>>     public static final int[] UNIT_OFFSET_MAP = new int[]
>>>         { 0, 36, 73, 109, 146, 182, 219 };
>>> 
>>>     /**
>>>      * pixel units to excel width units(units of 1/256th of a character
>>> width)
>>>      * @param pxs
>>>      * @return
>>>      */
>>>     public static short pixel2WidthUnits(int pxs) {
>>>         short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR *
>>>                 (pxs / UNIT_OFFSET_LENGTH));
>>>         widthUnits += UNIT_OFFSET_MAP[(pxs % UNIT_OFFSET_LENGTH)];
>>>         return widthUnits;
>>>     }
>>> 
>>>     /**
>>>      * excel width units(units of 1/256th of a character width) to pixel
>>> units
>>>      * @param widthUnits
>>>      * @return
>>>      */
>>>     public static int widthUnits2Pixel(short widthUnits) {
>>>         int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR)
>>>                 * UNIT_OFFSET_LENGTH;
>>>         int offsetWidthUnits = widthUnits % EXCEL_COLUMN_WIDTH_FACTOR;
>>>         pixels += Math.round((float) offsetWidthUnits /
>>>                 ((float) EXCEL_COLUMN_WIDTH_FACTOR /
>>> UNIT_OFFSET_LENGTH));
>>>         return pixels;
>>>     }
>>> }
>>> 
>>> Here it the html stuff you asked about. Note that it does depend on your
>>> knowing in advance the sort of markup you will be getting; in terms of
>>> the entities. If you do not know this then there are other options you
>>> could use. One would be to create a full blown parser for the html - for
>>> which there is support in the jdk - but even this relies upon your
>>> knowing which tags mark the beginning and ending of the information you
>>> are interested in.
>>> 
>>>             String htmlExpression = "  <h3> " +
>>>                     " User Interface </h3>";
>>> 
>>>             // I want to extract the words 'Uesr Interface' from the
>>> html
>>>             // markup encapsulated within the hetmlExpression String.
>>> Looking
>>>             // at it, I can see that the tag that folows the text I am
>>> after
>>>             // is  so the first thing to do is search for that tag.
>>>             //
>>>             // To do this, I am using the indexOf() method which returns
>>> the
>>>             // position of the FIRST occurrence of it's parameter
>>> starting
>>>             // from the beginning of the String. There is also the
>>> lastIndexOf()
>>>             // method which will start at the end of the String and find
>>> the
>>>             // last occurrence of it's parameter.
>>>             //
>>>             int endPoint = htmlExpression.indexOf("");
>>>             //
>>>             // As I am dealing with html, I know that the character that
>>> marks
>>>             // the start point of the text I am after is the closing
>>> brace of
>>>             // the preceding tag. So, I can search backwards through the
>>>             // htmlExpression for that closing brace starting from the
>>> point
>>>             // I have already found above
>>>             //
>>>             int startPoint = htmlExpression.lastIndexOf(">", endPoint);
>>>             //
>>>             // Now I have both the starting and ending points for the
>>> substring
>>>             // I can simply extract it using the substring() method.
>>>             //
>>>             System.out.println("[" +
>>>                     htmlExpression.substring(startPoint, endPoint) +
>>>                     "]");
>>>             //
>>>             // Note that here, you are also seeing the search character
>>> - the >
>>>             // character - included in the substring. This is beacause
>>> of the
>>>             // way the indexOf() family of methods works when combined
>>> with the
>>>             // substring method; they assume you want to return the
>>> search
>>>             // character. If you do not, then add on to the index the
>>> length of the
>>>             // search String, in this case 1;
>>>             //
>>>             startPoint++;
>>>             System.out.println("[" +
>>>                     htmlExpression.substring(startPoint,
>>> endPoint).trim() +
>>>                     "]");
>>>             //
>>>             // Note as well that I have also stripped out the whitespave
>>> using
>>>             // the trim() method.
>>> 
>>> As for spending the time to help out, it's an investment really as it
>>> has yielded some code that can be added to the examples section of the
>>> documentation and others will - hopefully - benefit.
>>> 
>>> Yours
>>> 
>>> Mark B
>>> 
>>> 
>>> deep4u wrote:
>>>> 
>>>> Hi Mark,
>>>>            It is working ,Thanks a lot for spending time for me.
>>>> Regarding htm content in cell can u expalin clearly how to do .
>>>> 
>>>> Thanks,
>>>> 
>>>> 
>>>> MSB wrote:
>>>>> 
>>>>> With regard to the html, you will have to parse it to remove the tags
>>>>> and extract the text you want to place into the cell. Sadly, there is
>>>>> no 'automatic' way to accomplish what you are after, but it should be
>>>>> easy enough using the idexOf() and substring() methods of the String
>>>>> class for example.
>>>>> 
>>>>> Sorry about the image explanation, it was a little complicated at
>>>>> first glance.
>>>>> 
>>>>> Think of a single cell on a spreadsheet. It is possible to identify
>>>>> any location within that cell by a pair of co-ordinates, x and y; the
>>>>> co-ordinate 0, 0 is the top left hand corner of the cell for example.
>>>>> The compete set of co-ordinates is limited; x values can only be in
>>>>> the range o to 1023 and y values in the range 0 to 255. This
>>>>> co-oridnate system seems to remain fixed irrespective of the size of
>>>>> the cell; that is to say the cell is always 1023 by 255 units.
>>>>> 
>>>>> As you know, the HSSFClientAnchor class takes eight parameters. The
>>>>> latter four identify the rows and columns that the image will span
>>>>> whilst the first four determine the locations of the top left and
>>>>> bottom right hand corners of the image within a cell using that
>>>>> co-ordinate system I have just described. 
>>>>> 
>>>>> Typically, the HSSFClientAnchor class is used like this;
>>>>> 
>>>>> HSSFCientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, 0, 0, 1, 8);
>>>>> 
>>>>> Which describes the situation where an image would span from column 0,
>>>>> row 0 to column 1, row 8. It is this type of setup that causes the
>>>>> problem you have seen; expand column 1 and the image expands with it
>>>>> whatever we try to do with the anchor's type.
>>>>> 
>>>>> Well, I have found that it is possible to do something like the
>>>>> folowing;
>>>>> 
>>>>> HSSFCientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, 0, 0, 0,
>>>>> 0);
>>>>> 
>>>>> This will place the image in cell A1 and the size of the image will be
>>>>> 255 'units' square; the units relate to the co-ordinate system and not
>>>>> to any measure of size such as a centimeter, a point, a pixel, etc. I
>>>>> cannot guarantee the paramaters are in the correct order as I am
>>>>> writing this without consulting the javadoc but I hope it explains
>>>>> what I mean.
>>>>> 
>>>>> What I am going to try to accomplish is to find a way to map from a
>>>>> real size - I am aiming at millimeters currently - to the coordinate
>>>>> system so that it is possible to say, in effect;
>>>>> 
>>>>> "insert this image into cell A1. Place it 10mm in from the left hand
>>>>> edge of the cell and 10mm down from the top of the cell. Make the
>>>>> image 25mm wide and 30mm high."
>>>>> 
>>>>> Then by setting the various parameters of the HSSFClientAnchor class,
>>>>> the image will be inserted into the correct location and sized
>>>>> appropriately.
>>>>> 
>>>>> To make use of the technique, I think that you will need to do the
>>>>> following;
>>>>> 
>>>>> 1. Populate the sheet.
>>>>> 2. Expand the column in question.
>>>>> 3. Place the image on the sheet.
>>>>> 
>>>>> This order is necessary because we are having to adjust the size of
>>>>> the image in response to the re-sizing of the column as that is the
>>>>> event that deforms it. It is not possible to apply this
>>>>> retrospectively, so the image has to be sized and placed once the
>>>>> column is re-sized.
>>>>> 
>>>>> Hope that helps but do not worry too much at this stage if it sound
>>>>> confusing, the code will help to clear up any confusion I hope - and
>>>>> assuming I can get it to work!!
>>>>> 
>>>>> Mark B
>>>>> 
>>>>> 
>>>>> 
>>>>> deep4u wrote:
>>>>>> 
>>>>>> Hi Mark,
>>>>>>             I didn't get that one. can u expalian clearly and i have
>>>>>> one more doubt. suppose in a cell i wrore html content example
>>>>>> <html><p><h6>Market value</h6></p></html>, but i need only dispaly
>>>>>> purpose Market value. eleminating the html tags. for this is there
>>>>>> any way, please let me know.
>>>>>> 
>>>>>> Thanks,
>>>>>> 
>>>>>> 
>>>>>> MSB wrote:
>>>>>>> 
>>>>>>> I think that I might be on to a technique to solve this specific
>>>>>>> sort of problem.
>>>>>>> 
>>>>>>> Firstly, I have found out that it is possible to 'place' an image
>>>>>>> into a specific cell by setting all of the co-ordinates for that
>>>>>>> cell - the last four parameters of the HSSFClientAnchor class - to
>>>>>>> the same value. So, to place an image in cell A1, the last four
>>>>>>> parameters would be 0, 0, 0, 0.
>>>>>>> 
>>>>>>> Secondly, those first four parameters of the HSSFClientAnchor class
>>>>>>> - dx1, dx2, dy1 and dy2 - determine the locations of the top left
>>>>>>> and bottom right ahnd corners of the image within the cell; and this
>>>>>>> is to my mind the crucial point. By limiting the location to just
>>>>>>> one cell using the latter four parameters and then playing with the
>>>>>>> values of the first four, it is possible to place an image within a
>>>>>>> cell and to determine the size of that image.
>>>>>>> 
>>>>>>> Thirdly, it seems that the co-ordinate system within the cell is
>>>>>>> fixed with regard to the range of values. Apparantly, moving from
>>>>>>> the top of the cell downwards, the range of co-ordinate values runs
>>>>>>> from 0 to 255. Moving from the right hand edge of the cell
>>>>>>> leftwards, the co-ordinate values move from 0 to 1023. The challenge
>>>>>>> I now have to crack is determining how these co-ordinate values can
>>>>>>> be manipulated to ensure that an image is inserted at the correct
>>>>>>> location within the cell and is sized appropriately.
>>>>>>> 
>>>>>>> Again, I think that I am onto apossible solution but it involves
>>>>>>> converting between Excel's system of expressing the columns width to
>>>>>>> pixels, determining the 'actual' width of the column, caculating now
>>>>>>> many pixels - how far and how large - to set the image and then
>>>>>>> converting this back into the co-ordinate systems values. Could be a
>>>>>>> bit tricky and I will not have the time to work on it during the day
>>>>>>> today as we are catching up on the work we missed yesterday owing to
>>>>>>> the rain. As always though, I will post if I make any progress.
>>>>>>> 
>>>>>>> Yours
>>>>>>> 
>>>>>>> Mark B
>>>>>>> 
>>>>>>> 
>>>>>>> deep4u wrote:
>>>>>>>> 
>>>>>>>> Hi mark,
>>>>>>>>             when u free send me the code.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> 
>>>>>>>> MSB wrote:
>>>>>>>>> 
>>>>>>>>> The image ought to be fine. Using Excel, it is possible to set the
>>>>>>>>> same sort of properties that you can with POI, i.e. that the image
>>>>>>>>> should not move or resize itself with the cells. To do this using
>>>>>>>>> 'my' version of Excel, you select the image on the worksheet and
>>>>>>>>> click on the right hand mouse button; this pops open a menu from
>>>>>>>>> which you can select the 'Size and Properties' option. The options
>>>>>>>>> screen that appears in response to this has a number of tabs on
>>>>>>>>> it. One of them is labelled 'Properties' and selecting this allows
>>>>>>>>> you to say how the image should respond to resizing of the cells.
>>>>>>>>> I would select the 'Don't move or size with cells' option. Then
>>>>>>>>> the image ought to remain tha same size irrespective of what you
>>>>>>>>> do with the columns or rows.
>>>>>>>>> 
>>>>>>>>> If you are in no hurry, I can put together some code later today
>>>>>>>>> to test this hypothesis and then post the results to you. Sadly, I
>>>>>>>>> have to leave in about an hour to help a group of volunteers
>>>>>>>>> construct a flight of steps linking two footpaths together - which
>>>>>>>>> should be fun given the weather forecast today - but should be
>>>>>>>>> able to get some code together this evening.
>>>>>>>>> 
>>>>>>>>> Yours
>>>>>>>>> 
>>>>>>>>> Mark B
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> deep4u wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi mark,
>>>>>>>>>>             I need to create a excel dynamically means based On
>>>>>>>>>> weekly, Monthly, suppose this is current week so
>>>>>>>>>> 07/24/09-07/31/09,...next based on months  july month the name
>>>>>>>>>> excelsheet will be "july.xls" , and next nonth "August.xls"... If
>>>>>>>>>> i taking a template ok but in my program i will set autosize on
>>>>>>>>>> that no streched the image?
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> MSB wrote:
>>>>>>>>>>> 
>>>>>>>>>>> You need to do the following;
>>>>>>>>>>> 
>>>>>>>>>>> Start Excel
>>>>>>>>>>> If necessary, open a new workbook - Excel usually opens up with
>>>>>>>>>>> a new, empty workbook so this may not be necessary.
>>>>>>>>>>> Select Insert->Picture and navigate your way to where the logo
>>>>>>>>>>> image is stored. Select (highlight) the image and then click on
>>>>>>>>>>> the Insert button.
>>>>>>>>>>> Now, you should see that the logo has been inserted into the
>>>>>>>>>>> worksheet and you can use the mouse to drag it into the correct
>>>>>>>>>>> location and re-size it as necessary.
>>>>>>>>>>> Save the file away and remember where you stored it and the name
>>>>>>>>>>> you used.
>>>>>>>>>>> 
>>>>>>>>>>> That has created the template that you will pick up using POI
>>>>>>>>>>> and populate with data. All you need to do is something like
>>>>>>>>>>> this;
>>>>>>>>>>> 
>>>>>>>>>>> File file = new File("..Path to and name of the file you created
>>>>>>>>>>> above..");
>>>>>>>>>>> FileInputStream fis = new FileInputStream(file);
>>>>>>>>>>> HSSFWorkbook workbook = new HSSFWorkbook(fis);
>>>>>>>>>>> HSSFSheet sheet = workbook.getSheetAt(0);
>>>>>>>>>>> 
>>>>>>>>>>> and when you have your sheet, populate it in the usual manner
>>>>>>>>>>> and then save the completed workbook away again, most likely
>>>>>>>>>>> using a different name so that the template can be used again
>>>>>>>>>>> and again as the basis for further documents. It is common to
>>>>>>>>>>> see users do this sort of thing as POI's image manipulation
>>>>>>>>>>> facilities are not quite as feature rich as are Excel's.
>>>>>>>>>>> 
>>>>>>>>>>> Hope that helps. If it is not clear, I will create a template
>>>>>>>>>>> and some code that picks it up and populates it and PM both to
>>>>>>>>>>> you; just let me know.
>>>>>>>>>>> 
>>>>>>>>>>> Yours
>>>>>>>>>>> 
>>>>>>>>>>> Mark B
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> deep4u wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi mark,
>>>>>>>>>>>>            I need to create Excel sheet dynamically with logo.
>>>>>>>>>>>> But using Template how it is possible.
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> MSB wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> So, setting the anchor type does not solve the problem?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> In that case, I think that your only recourse is to create a
>>>>>>>>>>>>> document template using Excel and to place the logo onto the
>>>>>>>>>>>>> document with it. Then you should be able to safely use
>>>>>>>>>>>>> HSSF/XSSF to populate the worksheet.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Yours
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Mark B
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> deep4u wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>     i use the poi 3.5 also image will be expanding. I write
>>>>>>>>>>>>>> like this
>>>>>>>>>>>>>>  anchor.setAnchorType(HSSFClientAnchor.DONT_MOVE_AND_RESIZE);
>>>>>>>>>>>>>> or  anchor.setAnchorType(3);  how to reslove this.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> deep4u wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>        I am new to this Library. Its working great, i used
>>>>>>>>>>>>>>> logo (image) in the excel sheet. with the auto sizing the
>>>>>>>>>>>>>>> image also expanding and contracting according to that
>>>>>>>>>>>>>>> column data. 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Can i keep the image irrespective of the column size? 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/autosize-in-Excel-irrespetive-of-image-tp24604961p24786132.html
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to