[prev in list] [next in list] [prev in thread] [next in thread]
List: poi-user
Subject: =?iso-8859-2?Q?Re:_Embed_HSSF_into_HSLF?=
From: roman.durdik () volny ! cz
Date: 2009-09-30 9:54:25
Message-ID: b470d5d99ea8e0ea056a5274c031f23b () www1-mail ! volny ! cz
[Download RAW message or body]
Hello Yegor,
Thank you for the fast answer. I tried just to open the workbook and
write the same data back:
OLEShape ole = (OLEShape) sh[i];
HSSFWorkbook wb=new HSSFWorkbook(od.getData());
ObjectData od=ole.getObjectData();
ByteArrayOutputStream out = new ByteArrayOutputStream();
wb.write(out);
od.setData(out.toByteArray());
When I open the object in the Powerpoint I get this message: "The server
application, source file, or item can't be found, or returned as an
unknown error. You may need to reinstall the server application."
I also looked into od.storage._data and it is different before and after.
Can you please try to find another solution?
Thank you and best regards,
Roman
PS: I am using POI 3.5 beta 5 since I get this error in higher versions:
java.lang.NoSuchMethodError: \
org.apache.poi.ddf.EscherContainerRecord.getChildIterator()Ljava/util/Iterator; \
org.apache.poi.hslf.model.Sheet.getShapes(Sheet.java:213)
"Yegor Kozlov" <yegor@dinom.ru> wrote:
> roman.durdik@volny.cz wrote:
> > Hello all,
> > I am trying to create PPT slide which will contain
> > excel workbook. What
> > > I can do is that I create the excel object in the
> > Powerpoint template
> > > and then I can read it like this:
> >
> > OLEShape ole = (OLEShape) sh[i];
> > ObjectData od=ole.getObjectData();
> > HSSFWorkbook wb=new HSSFWorkbook(od.getData());
> > HSSFSheet excelSheet=wb.getSheetAt(0);
> > HSSFRow row=excelSheet.getRow(0);
> > HSSFCell cell=row.getCell(0);
> >
> > Everything works well up to now. Then I would like
> > to write some new
> > > data: cell.setCellValue("hello"); which works as
> > well.
> > >
> > But now I would like to write the excel workbook
> > back to the powerpoint
> > > slide.
> >
> > Could you please help me? I don't have any idea how
> > to do it.
> > >
>
> Try to serialize the workbook in a byte array and push
> the bytes back to ObjectData :
>
> ByteArrayOutputStream out = new ByteArrayOutputStream();
> wb.write(out);
> od.setData(out.toByteArray());
>
> Yegor
>
>
> > Thank you,
> > Roman
> >
> >
> >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
> > > For additional commands, e-mail: user-help@poi.apache.org
> > >
> >
>
>
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
> For additional commands, e-mail: user-help@poi.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic