Ich habe eine Powerpoint-Präsentationsfolie mit benannten TextBoxen. Ich möchte in der Lage sein, den Text von einer Java-Anwendung in einer bestimmten benannten TextBox zu ändern. Ich habe ähnlich mit Excel gemacht, wo ich eine Methode habe, die eine Zeichenfolge akzeptiert, die den Namen darstellt, dann durch jede TextBox in der Excel-Tabelle schreitet und den Namen der TextBox mit dem angegebenen Namen vergleicht und das TextBox-Objekt zurückgibt. Ich habe einen ähnlichen Code für Powerpoint verwendet und es funktioniert nicht. Beim Schreiben einer Test-Routine unten fand ich, dass .getShapeName() im Grunde den ShapeType zurückgibt und nicht den tatsächlichen Namen, den ich in ppt angegeben habe.Abrufen einer benannten TextBox aus PPT mit Apache Poi
Kann mir jemand helfen, einen Weg zu finden, die Namen der ppt TextBoxen zu bekommen?
private void getTextBox() {
for (HSLFShape myShape : slide.getShapes()) {
if (myShape instanceof HSLFTextBox) {
myTextBox = (HSLFTextBox) myShape;
System.out.println(myTextBox.getShapeName() + " " + myTextBox.getShapeType());
}
}
}
Diese Routine gibt die folgenden:
TextBox Text_box
TextBox Text_box
TextBox Text_box
TextBox Text_box
TextBox Text_box
getShapeId() ist wahrscheinlich nicht das, was Sie wollen. ist HSLFTextBox.getMetroShape() alles zurückgeben? ... wenn ja, überprüfen Sie den Namen der Form. – kiwiwings