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]>
