On Wed, 25 May 2005 09:51:16 -0400 Amol Deshmukh <[EMAIL PROTECTED]> wrote:
> Reply below... > > > -----Original Message----- > > From: Gerd Mueller [mailto:[EMAIL PROTECTED] > > > > > Most of the time, you should not have to deal with > > > FormulaParser directly (Same goes for Workbook). > > > > Yes, but I need to analyse, i.e. parse, the formula to adjust > > some references. The HSSFCell > > and HSSFWorkbook use a workbook internally but I can't access > > it. So, is > > there any way to get or create a Workbook from a HSSFWorkbook? > > > Hmm... > IMHO, The idea was that an api user should never have > to deal with FormulaParsing details, hence the access > to Workbook from HSSFWorkbook using the method > getWorkbook() is package level. > > However, for your case a workable solution in my mind > would be to get the source from CVS and add your code > in the package o.a.p.hssf.usermodel so that you can > get access to the Workbook from the HSSFWorkbook using > getWorkbook() after HSSFWorkbook has been initialized > appropriately from the xls file. > > (But then again, I'm not sure I understand what you are > trying to achieve completely, so maybe I'm not making > sense?) I'm loading an Excel-document as a template and copy some rows with POI. These rows may contains cells with formulas. These formulas may contain references to other cells in the same row. So I need to parse the formula adjust the references to the new row number and write it back. Finally I'm simulating the copy-cell-process of Excel where it adjusts the references of formula to the correct row number if it doesn't contain a leading '$'. bye, gerd > HTH, > ~ amol > > > > > > > Best Regards, > > gerd > > > > > Most of the time you should be fine with simply using the api > > > in the > > > org.apache.poi.hssf.usermodel > > > org.apache.poi.hssf.usermodel.contrib > > > org.apache.poi.hssf.util > > > packages. > > > > > > As far as reading a cell formula is concerned, you may want to > > > have a look at: > > > > > > > > > > > http://jakarta.apache.org/poi/apidocs/org/apache/poi/hssf/user > > model/HSSFCell > > > .html#getCellFormula() > > > > > > and > > > > > > > > > > > http://jakarta.apache.org/poi/apidocs/org/apache/poi/hssf/user > > model/HSSFCell > > > .html#getCellType() > > > > > > > > > (HSSFCell.getCellFormula() invokes the FormulaParser internally) > > > > > > > > > HTH, > > > ~ amol > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > From: Gerd Mueller [mailto:[EMAIL PROTECTED] > > > > Sent: Tuesday, May 24, 2005 5:48 AM > > > > To: [email protected]; [EMAIL PROTECTED] > > > > Subject: Re: cell rerference problem > > > > > > > > > > > > > > > > > Are you doing this with a new (ie, POI created ) > > workbook? Do the > > > > > sheets Table1 > > > > > and Table2 exist at the point you are doing this? > > > > > > > > I load an Excel-document that I've created with Excel and > > loop through > > > > some cells. So I get a HSSFWorkbook that contains some formulas. > > > > > > > > > Can you show us the code you are using (simplified)? See the > > > > > TestFormulas file > > > > > for example of how to use sheet references. > > > > > > > > The code for parsing and converting the formula is pretty > > > > straight forward: > > > > > > > > Workbook wb = Workbook.createWorkbook(); > > > > FormulaParser fParser = new FormulaParser( formula, wb ); > > > > fParser.parse(); > > > > Ptg[] ptgs = fParser.getRPNPtg(); > > > > > > > > // doing something here ... > > > > > > > > return fParser.toFormulaString( wb, ptgs ); > > > > > > > > Do I need to convert the HSSFWorkbook in a Workbook and > > if so, how? > > > > > > > > Best Regards, > > > > gerd > > > > > > > > > > > > > > Regards > > > > > - > > > > > AVik > > > > > > > > > > > > > > > Quoting Gerd Mueller <[EMAIL PROTECTED]>: > > > > > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > I've got the following formula: > > > > > > > > > > > > SUMIF(Table1!F11:F9999,Table2!B11,Table1!Q11:Q9999) > > > > > > > > > > > > I read this with the FormulaParser and than convert it back to > > > > > > a string. The result is: > > > > > > > > > > > > SUMIF(!F11:F9999,!B11,!Q11:Q9999) > > > > > > > > > > > > Is this a bug and can it be fixed easily? > > > > > > > > > > > > Best Regards, > > > > > > gerd > > > > > > > > > > > > > > ________________________________________________________________ > > > > > > Gerd Mueller > > [EMAIL PROTECTED] > > > > > > SMB GmbH > http://www.smb-tec.com > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > Mailing List: http://jakarta.apache.org/site/mail2.html#poi > > The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ > > > ________________________________________________________________ > Gerd Mueller [EMAIL PROTECTED] > SMB GmbH http://www.smb-tec.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > Mailing List: http://jakarta.apache.org/site/mail2.html#poi > The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > Mailing List: http://jakarta.apache.org/site/mail2.html#poi > The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ ________________________________________________________________ Gerd Mueller [EMAIL PROTECTED] SMB GmbH http://www.smb-tec.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] Mailing List: http://jakarta.apache.org/site/mail2.html#poi The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/
