Я использую POI с java 1.8 для чтения OLEObject в Excel. В приведенном ниже коде я читаю OLEObject и сохраняю в папке. Мне нужна часть Excel для чтения, чтобы получить позицию строки OLEObject (т. Е.) Метод packpart getAllEmbedds в позицию строки OLEObject.
if (workbook instanceof XSSFWorkbook)
{
try
{
XSSFWorkbook fWorkbook = (XSSFWorkbook) workbook;
PackagePart pPart = null;
Iterator<PackagePart> pIter = null;
List<PackagePart> embeddedDocs = fWorkbook.getAllEmbedds();
int index=1;
OutputStream outputStream = null;
if (embeddedDocs != null && !embeddedDocs.isEmpty())
{
pIter = embeddedDocs.iterator();
while (pIter.hasNext())
{
pPart = pIter.next();
try
{
outputStream = new FileOutputStream(new File("...filestorepath/"+index+".pdf"));
index++;
}
catch (FileNotFoundException ex)
{
Logger.getLogger(packaeParExample.class.getName()).log(Level.SEVERE, null, ex);
}
int read = 0;
byte[] bytes = new byte[1024];
try
{
while ((read = inputStream.read(bytes)) != -1)
{
outputStream.write(bytes, 0, read);
}
}
catch (IOException ex)
{
Logger.getLogger(packaeParExample.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
catch (OpenXML4JException ex)
{
Logger.getLogger(packaeParExample.class.getName()).log(Level.SEVERE, null, ex);
}
}