下記のコードを使用してSmartArtのテキストと代替テキストを抽出しています。
しかし、以下のサンプルデータをプロセスした場合、テキストが全て空になってしまいます。
Shape shape = (Shape) shapeObj;
if (shape.isSmartArt()) {
GroupShape resultOfSmartArt = shape.getResultOfSmartArt();
Shape[] groupedShapes = resultOfSmartArt.getGroupedShapes();
Arrays.asList(groupedShapes).stream()
.forEach(x -> {
// extract smartart text
System.out.println(x.getText()); // empty
System.out.println(x.getTitle()); // empty
System.out.println(x.getAlternativeText()); // empty
});
}
アプリケーション上からSmartArtは確認することができます。
このSmartArtのテキストと代替テキストを抽出する方法はございますでしょうか。
使用バージョン:Aspose.Cells for Java 18.6
サンプルデータ:sample.zip (324.1 KB)
以上、ご確認の程よろしくお願いいたします。
@yudai_yamaguchi,
テンプレートファイルとスクリーンショットありがとうございます。
私はあなたのテンプレートのExcelファイルをチェックし、あなたが次のサンプルコードを使用して、図形のタイトルと代替テキストを抽出できるように、上記のスマートアートがグループ化されていないことを発見しました。 参考までに、以下のサンプルコードを参照してください。
例えば
サンプルコード:
Workbook wb = new Workbook("F:\\Files\\smartarttext\\sample\\test.xlsx");
Worksheet sheet = wb.getWorksheets().get(1);
for (Object shapeObj : sheet.getShapes()) {
Shape smShape = (Shape) shapeObj;
// SmartArtを取得
if (smShape.isSmartArt()) {
System.out.println(smShape.getTitle());
System.out.println(smShape.getAlternativeText());
}
}
希望です、これは少し役に立ちます。
ご返答ありがとうございます。
しかし、あなたが私に教えてくれたサンプルコードで抽出できる代替テキストについてはすでに私も把握しています。
私が抽出したいのはその代替テキストではありません。
私が抽出したいのはSmartArtのグループのテキストと代替テキストです。
(私の記載したサンプルコードで抽出できるはずのテキストです)
@yudai_yamaguchi,
これはAPIの問題ではありません。 グループの図形はグループ解除できます。 しかし、スマートアートはグループを解除することはできません。 スマートアートを右クリックすると、アイテムのグループを解除するオプションが見つからないことがあります。
スマートアートは特別な形式です。 スマートアートをイメージに変換するには、キャッシュされた図を "xl / diagrams / drawing1.xml"に読み込んでグループ図を返す必要があります。 あなたの情報は、 "xl / diagrams / drawing1.xml"を含むファイルのみが表示され、スマートアートはイメージに変換できます。 私は "xl / diagrams / drawing1.xml"なしで恐れる。 私はスマートアートのために何もすることはできませ