ich arbeite derzeit mit Excel-Dateien (* .xlsm) und Apache POI, und ich habe mir den Kopf über eine Aufgabe. Ich erhalte einige Excel-Dateien, in denen PDFs eingebettet sind, und ich möchte sie extrahieren und sie auf der Zeile und Spalte umbenennen. Dies scheint seltsam, wie ich weiß, dass die eingebetteten Objekte als Bilder dargestellt werden, können sie mehr belegen als eine Zelle und technisch sind sie nicht "In" der Zelle.Get Row und Col für eingebettetes Objekt mit POI
Das folgende Code-Snippet lässt mich die eingebetteten PDFs extrahieren, aber sie heißen OleObject [1..2.3.etc ..], das mir keine Ahnung gibt.
inStream = new FileInputStream(file);
XSSFWorkbook workbook = new XSSFWorkbook(inStream);
for (PackagePart pPart : workbook.getAllEmbedds()) {
String contentType = pPart.getContentType();
if (contentType.equals("application/vnd.openxmlformats-officedocument.oleObject")){
POIFSFileSystem fs = new POIFSFileSystem(pPart.getInputStream());
TikaInputStream stream = TikaInputStream.get(fs.createDocumentInputStream("CONTENTS"));
byte[] bytes = IOUtil.toByteArray(stream);
stream.close();
OutputStream outStream = new FileOutputStream(new File(ROOT_DIRECTORY.getAbsolutePath()+"\\PDF"+i+".pdf"));
IOUtil.copy(bytes, outStream);
outStream.close();
}}
wollte ich wissen, ob org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet mir den XML-Code des excell Blatt sehen lassen und vielleicht eith taht ich die info ich brauche zu bekommen. So was.
<oleObjects><mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice Requires="x14"><oleObject progId="Acrobat Document" dvAspect="DVASPECT_ICON" shapeId="1028" r:id="rId4"><objectPr defaultSize="0" r:id="rId5"><anchor moveWithCells="1"><from><xdr:col>8</xdr:col><xdr:colOff>0</xdr:colOff><xdr:row>11</xdr:row><xdr:rowOff>0</xdr:rowOff></from><to><xdr:col>8</xdr:col><xdr:colOff>1143000</xdr:colOff><xdr:row>13</xdr:row><xdr:rowOff>171450</xdr:rowOff></to></anchor></objectPr></oleObject></mc:Choice><mc:Fallback><oleObject progId="Acrobat Document" dvAspect="DVASPECT_ICON" shapeId="1028" r:id="rId4"/></mc:Fallback></mc:AlternateContent></oleObjects>
-
<objectPr defaultSize="0" r:id="rId5"><anchor moveWithCells="1"><from><xdr:col>8</xdr:col><xdr:colOff>0</xdr:colOff><xdr:row>11</xdr:row><xdr:rowOff>0</xdr:rowOff></from><to><xdr:col>8</xdr:col><xdr:colOff>1143000</xdr:colOff><xdr:row>13</xdr:row><xdr:rowOff>171450</xdr:rowOff></to></anchor></objectPr>
ich die Ankerinformationen erraten Verwendung möglich wäre, aber im nur nicht in der Lage zu finden, wie es zu bekommen.
Hoffe diese Information macht die Dinge klar auf was ich versuche zu tun.
Vielen Dank im Voraus.