On Fri, 2002-05-10 at 13:09, Dagnon, Chris wrote:
> 1. Thanks for the link.  Yes, I knew there were strings involved but
> wanted/assumed that the names (perhaps of all fonts defined in X versions of
> Windows?) would be listed as constants in the class.  I was so enthusiastic
> about the whole thing that I went and coded a method to do this - then
> realized that the method would be run on the server and not on the user's
> machine so I don't know what list it would check against.  Ah well.
> 

Right.  That is a limitation of the file format.  The same is true if
you use a font in your Excel file that is not installed on the user's
machine.  The "RightThing" for Microsoft to have done, would to have
embedded any likely non-standard fonts in the OLE 2 Compound Document
that wraps the Excel file and asked the user if he/she/it/they wanted to
install them.  I'm sure they'd have found great ways to make this a
breeding ground for viruses, but *shrug* ;-)

> 4. Thanks for the warning - I'll be using 7 initially (reusing, actually),
> but I'll keep watch for too-many-fonts errors.
> 

That is the correct method.  You'll be no where near it with 7.  I
suspect the limit is closer to 2^8 || 2^7.

-Andy

> -Chris
> 
> 
> -----Original Message-----
> From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
> Sent: Friday, May 10, 2002 11:52 AM
> To: POI Users List
> Subject: Re: HSSF formatting questions
> 
> 
> Dagnon, Chris wrote:
> 
> >(Sorry for formatting: this Outlook doesn't add the indents for replying
> >messages ):
> >
> >1. So Fonts are all up in the air.  Rats.  How possible would it be to have
> >something based on the name instead of ID?  Wondering about an HTML-like
> >thing to specify preferences - is this possible, and if so do you need
> >someone to code it?:)  In someone's CSS file I'm looking at a string like:
> >     font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
> >
> Okay you're not understanding this.  It is based on name.  But excel 
> only allows one.  I mean we could DO that in HSSF but excel would 
> interperate that as the name of a single font which wouldn't be 
> effective.  This is a limititation of Excel.
> 
> Look here:
> http://jakarta.apache.org/poi/hssf/quick-guide.html#WorkingWithFonts
> 
> The ID is not important to you.  Its only a unique identifyer for that 
> instant of that typeface/font.
> 
> >
> >As for the HSSFCellStyle.RED example, well, I'm using the released version
> >(for a project) where 1.5 is the most recent edition, correct?  As for
> >CVSing to your repository... I think I'll hold off on that.
> >  
> >
> Its the most recent production release.  
> 
> >
> >2. Using the Standard palette is good.  Yeah users could change it but
> >that's their problem.
> >
> >4. Yeah, making a bunch of fonts and styles is no biggie :)
> >  
> >
> Just don't make toooo many of them.  Early reports are that there are 
> limitations.  Create few and stamp them.
> 
> >5 & 6. I figured - who knows the magic that goes on inside that MS stuff.
> >  
> >
> We're getting closer to knowing every day.  Thats why this is fun ;-)
> 
> -Andy
> 
> >
> >-Chris
> >
> >
> >
> >-----Original Message-----
> >From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
> >Sent: Friday, May 10, 2002 9:10 AM
> >To: POI Users List
> >Subject: Re: HSSF formatting questions
> >
> >
> >Dagnon, Chris wrote:
> >
> >  
> >
> >>Some questions:
> >>
> >>1. HSSFFont: Are the font's IDs the same for every machine?  If so, is it
> >>just a matter of someone putting in all the fonts other than Arial as
> >>constants in this class?
> >> 
> >>
> >>    
> >>
> >Nope.  The font ID refers to the font record added.  These are 
> >sequential identifiers.  The string Font Name "Arial" is NOT guaranteed 
> >to be rendered as such.  Meaning if you create an instance of HSSFFont 
> >on your workbook (which will be assigned a new id -- where id = last id 
> > + 1) and assign it the name "Arial" and I bring up Excel on my Unix box 
> >and don't install Arial, chances are it will be rendered in Helvetica or 
> >some other font instead.  Same thing happens in Excel if you just assign 
> >a font on one machine and the next doesn't have it.  Perhaps HSSFFont 
> >should be HSSFTypeStyle as it equals a Font + its styling, but we shan't 
> >because Microsoft doesn't.  It would be more confusing to invent a new 
> >name.  In short, HSSFFont's ID is assigned in the same manner as 
> >HSSFSheet's.
> >
> >  
> >
> >>HSSFCellStyle: The javadoc gives a couple examples with colors;
> >>    cs.setFillBackgroundColor(HSSFCellStyle.RED);
> >>    cs.setFillForgroundColor(HSSFSeCellStyle.RED); // Typo!
> >>But the colors aren't listed in the javadoc as they are for many other
> >>settings like setFillPattern().  Fortunately they come up in VAJ using
> >>auto-complete.  
> >>
> >>    
> >>
> >This example is no longer valid either.  (at least not in > 1.5)  You 
> >must now use org.apache.poi.hssf.util.HSSFColor.RED, etc.  Please submit 
> >your corrections in "patch" format.  Meaning correct them and then 
> >submit a patch (use cvs diff -u) and I shall apply it.
> >
> >VAJ...eeew yucky.
> >
> >  
> >
> >>My questions are:
> >>2. Are the colors constant across all machine settings?
> >>
> >>    
> >>
> >Yes and No.  HSSF does not yet support custom pallettes.  The Default 
> >pallette (that it supports) is constant accross all Excels and 
> >compatible apps.  Custom pallette support is a furture requirement.
> >
> >  
> >
> >>3. Are the colors listed the only choices?
> >>
> >>    
> >>
> >answered above.
> >
> >  
> >
> >>4. There wouldn't happen to be a short-cut/macro to set all cells in a row
> >>to a certain partial HSSFCellStyle?  For example I want to alternate row
> >>colors but have all with the same font and yet keep the columns' number
> >>styles the same :)  Hmm, yeah, I suppose that would lead to more confusion
> >>than clarity having it possible to specify at more than the cell's level
> 8)
> >>
> >>    
> >>
> >You should create 1 HSSFCellStyle for EACH type of style and assign it 
> >to each row.  As for some kind of conditional well that sounds like a 
> >good place for a utility class in your application rather than HSSF.
> >
> >Example (in my personal pseudocode style):
> >
> >Font1 = create HSSFFont...
> >  font1.set ...
> >Font2 = create HSSFFont...
> >  font2.set ...
> >
> >Style1 = create HSSFCellStyle...
> >  style1.set..
> >  style1.setFont(Font1)
> >
> >Style2 = create HSSFCellStyle...
> >  style2.set..
> >  style2.setFont(Font2)
> >
> >for (int k = 0; k < 10; k++) {
> >
> >if (k mod 2 != 0) {
> >   set cell style to style 1
> >} else {
> >   set cell style to style 2 
> >}
> >
> >}
> >
> >
> >  
> >
> >>HSSFSheet.setColumnWidth(): I've tried using this a little, and I thought
> >>the javadoc said that the width parameter was to represent 1/256th of a
> >>character's width.  It's not showing up in that manner (ie. 5*256 shows a
> >>little more than 4 question mark characters) and I'm wondering if this is
> >>due to 2 different factors:
> >>5. That Excel shows some extra space on both sides of a given string
> inside
> >>a cell
> >>6. If the 1/256th is based on a font different from the default.
> >> 
> >>
> >>    
> >>
> >This is basically a "Dunno" -- we read the docs, but the docs are wrong 
> >so in the past I've just created "majik equations" -- equations that 
> >work most of the time but probably only work by coincidence.
> >
> >I think you'd need to use the awt.fontmetrics to calculate this size and 
> >then advance the cell width based on that.  The catch is that "character 
> >width" is not constant.  W is bigger than I in most fonts.  So basically 
> >its either an opportunity for someone to nail this down and figure out 
> >how to do it "right" or just play with it until you come up with an 
> >equation that works for your font.
> >
> >  
> >
> >>And if I didn't say it before: Thanks for this product!
> >> 
> >>
> >>    
> >>
> >No problem man.  We enjoy doing it.  Thanks for helping make it better.
> >
> >-Andy
> >
> >  
> >
> >>-Chris
> >>
> >>--
> >>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> >>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >>
> >>
> >> 
> >>
> >>    
> >>
> >
> >
> >
> >
> >--
> >To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >--
> >To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >
> >  
> >
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 
-- 
http://www.superlinksoftware.com - software solutions for business
http://jakarta.apache.org/poi - Excel/Word/OLE 2 Compound Document in
Java                            
http://krysalis.sourceforge.net/centipede - the best build/project
structure
                    a guy/gal could have! - Make Ant simple on complex Projects!
The avalanche has already started. It is too late for the pebbles to
vote.
-Ambassador Kosh


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to