Published on System iNetwork (http://systeminetwork.com)
HSSF Word Wrapping
By tzura
Created Apr 25 2005 - 07:00

By:
Scott Klement [1]

Q: I've been using your HSSF tips to create Excel files. Now I have a problem. I'm trying to create a text cell that is approximately 800 characters long. I've turned text wrapping on, but I don't like where it wraps the text. Is there something I can do to tell it where the text should wrap?

For example, if I have the following text:

  "On Monday, we eat beans. On Tuesday we eat cauliflower."

I'd like Excel to format it as follows:

   On Monday, we eat beans.
   On Tuesday, we eat cauliflower.

A: You can do this in Excel by inserting a linefeed character wherever you'd like the word wrapping to occur. This does require that text wrapping be enabled by calling the setWrapText() method of the HSSFCellStyle class.

I have the following prototype defined for the setWrapText() method:

     D HSSFCellStyle_setWrapText...
     D                 PR                  EXTPROC(*JAVA
     D                                     :'org.apache.poi.hssf.-
     D                                     usermodel.HSSFCellStyle'
     D                                     :'setWrapText')
     D   wrapped                       N   value

In the RPG code where you set up your cell style, enable text wrapping for that style. For example, the following code creates a cell style where the text is left-aligned and text wrapping is enabled:

         Text = HSSFWorkbook_createCellStyle(book);
         HSSFCellStyle_setAlignment(Text: ALIGN_LEFT);
         HSSFCellStyle_setWrapText(Text: *ON);

Now that this has been done, you can insert linefeed characters into your string to tell HSSF where the data should be wrapped. In EBCDIC, the x'25' character represents a line feed, so the following code should do the job:

            hssf_text( row: 1 : 'On Monday, we eat beans.' + x'25' 
                              + 'On Tuesday, we eat cauliflower.' + x'25'
                              : Text);

This question references articles that were published in previous issues of Club Tech iSeries Programming tips. You can read those articles at the following links:
http://www.iseriesnetwork.com/article.cfm?id=19278 [2]
http://www.iseriesnetwork.com/article.cfm?id=19337 [3]
http://www.iseriesnetwork.com/article.cfm?id=19592 [4]
http://www.iseriesnetwork.com/article.cfm?id=19610 [5]

© 2010 Penton Media, Inc.

Source URL: http://systeminetwork.com/article/hssf-word-wrapping

Links:
[1] http://systeminetwork.com/author/scott-klement
[2] http://www.iseriesnetwork.com/article.cfm?id=19278
[3] http://www.iseriesnetwork.com/article.cfm?id=19337
[4] http://www.iseriesnetwork.com/article.cfm?id=19592
[5] http://www.iseriesnetwork.com/article.cfm?id=19610