Roman,

I don't have any other ideas how to update an embedded workbook. 
ObjectData.setData didn't work,
I suspect other places need to be  updated.

The fix will take time. Can you create a bug in Bugzilla and attach a sample 
file and java code to reproduce the problem?

Yegor

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" <[email protected]> wrote:

[email protected] 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: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to